《Drools6.4 中文文档》第1章1.3(完)

2022-05-06 08:39:49 浏览数 (1)

1.3 安装和配置(核心&IDE)

1.3.1 安装和使用

Drools提供了基于Eclipse的IDE(可选),但是它的核心只适用于Java 1.5。

最简单的一种开始使用方式就是下载安装带有插件的Eclipse,但这种方式依然需要安装Eclipse GEF 框架(如果你还未安装,参考以下内容)。IDE会为你提供开始工作所需要的所有依赖:你只用简单的创建一个规则项目,所有相关的事情已经由框架为你做好了。关于细节可以参考Rule Workbench和IDE。安装Eclipse插件只是简单的将文件解压到Eclipse插件所在的目录。

使用Eclipse插件是非必须的。规则文件只是文本输入(或电子表格),IDE(又称Rule Workbench)只是一个便利的工具。规则引擎已经被通过各种方式整合,没有一个可以适用所有场景的。

或者,你可以下载二进制文件,然后引入相关jar包到你的classpath路径下。

1.3.1.1 依赖和jar包

Drools被分解到几个模块中,一些需要在开发/编译过程中使用,一些需要在运行环境中使用。大多数情况,大家在运行时环境只是简单的将所有的依赖引入,这样很好,满足了最大的适用性。当然,有些人喜欢将运行时环境的依赖优化到最小,以方便二进制形式的部署,这样也是可行的。核心的运行时引擎是相当紧凑的,只需要包含在3个jar包中的几个100KB的文件。 下面是关于组成JBoss Drools最要的jar包的描述:

  • knowledge-api.jar – 提供接口和工厂。它清晰的展现出哪些是特意提供给用户的API,哪些是引擎的API。
  • knowledge-internal-api.jar – 提供内部接口和工厂。
  • drools-core.jar – 核心引擎,运行时组件。包含RETE引擎和LEAPS引擎。如果需要预编译规则(通过打包和规则库对象进行部署),这是唯一运行时所依赖的jar包。
  • drools-compiler.jar – 包含编译/构建组件,获取源文件、构建可执行规则库。运行时依赖,但如果是预编译的情况,则非必须选项,这取决于drools-core。
  • drools-jsr94.jar - JSR-94兼容的实现,本质上是一层drools-compiler组件。需要注意的是由于JSR-94协议的性质,并不是所有的特性都可以轻易的通过接口暴露。有些情况,可以很轻易的进入Drools API,但在某些环境下JSR-94是被委托的。
  • drools-decisiontables.jar – 决策表‘编译’组件,使用drools-compiler组件。提供excel和csv格式的输入。

以上jar包还需要依赖一些其他jar包,其中大多数是drools-compiler,drools-jsr94或drools-decisiontables模块的依赖。需要注意的是提供电子表格解析能力的“POI”和提供规则语言自身解析的“antlr”。

注释:如果你在J2EE或Servlet 容器中适用Drools,你会遇到关于classpath的“JDT”问题,这时,你可以转换到janino编译器。设置系统属性“drools.compiler”,比如:-Ddrools.compiler=JANINO。

如果想了解到最新的依赖版本,可以查看发布版本的POM文件。POM文件可以在maven资源库中查找到。

1.3.1.2 与Maven, Gradle, Ivy, Buildr 或 Ant的使用

Jar包可以通过以下两个Maven 资源库地址获得:Maven中心资源库(http://search.maven.org/#search|ga|1|org.drools)和jboss Maven资源库(https://repository.jboss.org/nexus/index.html)。 如果你使用maven,像下面这样添加KIE和Drools依赖到pom.xml文件:

代码语言:javascript复制
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-bom</artifactId>
        <type>pom</type>
        <version>...</version>
        <scope>import</scope>
      </dependency>
      ...
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.kie</groupId>
      <artifactId>kie-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-compiler</artifactId>
      <scope>runtime</scope>
    </dependency>
    ...
  <dependencies>

Gradle, Ivy 和Buildr与之类似。检查Maven资源库,确认是最新版本。 如果你还在使用Ant(没有Ivy),从下载的二进制zip包中复制所有jar包,然后,手动校验classpath,确保没有重复的jar包。

1.3.1.3 运行时

这里提到的“运行时”是以二进制的形式部署规则(或者是KnowledgePackage对象,或者KnowledgeBase对象等)。这是一个可选特性,可以让你运行时变得非常轻便。通过drools-compiler来生产规则包,而不是修改程序。然后,部署这些规则包到运行时系统。运行时系统只需要drools-core.jar和knowledge-api来执行。这是一个可选的方式,很多用户不需要“整理”他们的应用到这个地步,但是它对于某些环境是一个不错的选择。

1.3.1.4. 安装IDE(Rule Workbench)

Rule Workbench(Eclipse版本)需要Eclipse3.4或更高版本,Eclipse GEF 3.4或更高版本。可以下载插件安装或通过站点更新。 另一种选择是使用JBoss IDE,所有需要的插件已经预先打包,也可以选择其他的工具来分离规则。你可以选择安装规则从JBoss IDE附带的“包”。

1.3.1.4.1 安装GEF(必需依赖)

GEF是Eclipse的图形编辑框架,用于图形查看组件的插件。 如果你没有安装GEF,可以通过内置的更新机制(或者从Eclipse.org下载GEF,不建议使用)。JBoss IDE已经内置GEF,像其他Eclipse分支一样,这一步对很多人来说可能是多余的。 打开Help->Software updates…->Available Software->Add Site…。地址为:

代码语言:javascript复制
http://download.eclipse.org/tools/gef/updates/releases/

点击next,同意安装插件(可能需要重启Eclipse)。操作完这一步,然后就可以安装规则插件。

1.3.1.4.2 使用zip文件安装GEF

使用zip文件安装,下载、解压zip文件。在zip文件中找到插件目录和插件自身所需jar包。将插件jar包放置到Eclipse的插件目录,重启Eclipse。

1.3.1.4.3 使用zip文件安装drools

从下面的链接下载Drools Eclipse IDE插件,解压下载文件到Eclipse的主目录(不仅仅是复制文件,将feature和plugin目录下的jar包复制到Eclipse对应的目录),重启Eclipse。 下载地址:http://www.drools.org/download/download.html 检查是否安装成功,尝试打开Drools视图:点击Eclipse窗口右上角的“Open Perspective”按钮,选择“Other…”,选择Drools视图。如果未找到Drools视图,很可能是因为没有安装成功。检查一下你是否正确执行每一个步骤:Eclipse(3.4.x)的版本是否正确?插件是否正确提取(检查org.drools.eclipse_*.jar存在Eclipse根目录的plugin目录下)?如果你无法找到问题原因,请联系我们(比如,irc或邮件),更多的信息可以在官网查找:http://www.drools.org/

1.3.1.4.4. Drools 运行时

Drools运行时是文件系统上的Jar包集合,它代表一个特定版本的jar Drools项目。创建一个运行时,需要通过IDE指定选择发布的版本。如果你想创建一个新的运行时,它基于包含在插件自身中的最新Drools项目JAR包,你也可以轻易的做到。必须为Eclipse工作空间指定一个Drools运行时,但是个人项目可以覆盖默认的,并且明确的为项目选择适当的运行时。

1.3.1.4.4.1 定义一个Drools运行时 你必须在Eclipse的preferences视图中创建一个或多个Drools运行时。开点Eclipse的window菜单,选择preferences栏目,弹出Preferences对话框,这里可以设置你的配置项。对话框左侧,Drools分类下面,选择“Installed Drools runtimes”。右边面板会显示当前定义的Drools运行时。如果,你未定义任何运行时,显示情况如下图。

点击Add按钮,定义一个新的运行时。在弹出框中配置运行时名称和本地系统文件路径。

一般情况,可以有两个选择: 1. 如果你只是想使用Drools Eclipse插件默认引入的jar包,你可以创建一个Drools运行时通过点击“Create a new Drools 5 runtime …”按钮。弹出浏览窗口,询问选择运行时环境运行的本地系统目录。插件会自动的把所有需要的依赖复制到指定的文件夹。选择完目录之后,对话框显示如下图。 2. 如果你想使用一个指定版本的Drools项目,你需要创建一个文件夹,将所有的Drools lib和依赖放在此文件夹。与上面操作不同,设置一个运行时名称,选择包含所有jar的文件夹。

点击OK,新增的运行时将在“installed Drools runtimes”列表下显示,如下图。选择名字前面的选择框,设置当前运行时为默认项。默认Drools运行时将作为所有未指定运行时的Drools项目的配置。

你可以任意添加多个Drools运行时。比如,截图中配置了三个运行时:Drools 4.0.7 runtime,Drools 5.0.0 runtime和Drools 5.0.0.SNAPSHOT runtime。Drools 5.0.0 runtime是选中状态,因此作为默认值。

需要注意的是如果修改了默认的运行时,需要重新启动Eclipse,并确保所有使用默认运行的项目进行相应的更新。

1.3.1.4.4.2 为你的项目选择一个运行时

无论什么时候创建Drools项目(使用向导新建Drools项目或将转换Java项目转换为Drools项目),插件会自动的将所有jar包添加到项目的classpath下面。 当新创建一个Drools项目,插件会自动使用Drools运行时,除非指定一个特殊的。可以在向导创建项目的最后一步设置运行时,如下图,取消选择“Use default Drools runtime”,在下拉框中选择合适的运行时。如果你点击“Configure workspace settings …”链接,workspace 的preferences会显示当前安装的Drools运行时,可以在这里添加新的运行时。

可以在任何时候打开项目属性(右击项目选择Properties)修改Drools项目的运行时配置,选择Drools分类,如下图。选择“Enable project specific settings”复选框,从下拉框为项目选择适当的运行时。如果点击“Configure workspace settings …”链接,workspace的preferences会显示当前安装的Drools运行时,可以在这里添加新的运行时。取消选择“”Enable project specific settings”将会使用全局属性配置的默认运行时。

1.3.2 从源码构建

1.3.2.1 获得源码

每个Maven artifact的源码都可以通过Jboss Maven资源库中的源码jar包获得。同样的jar包也可以从下载的zip文件中获得。但是,如果你希望从源码进行构建,强烈建议从我们的源码管理中获得源码。 Drools和jBPM使用Git来版本管理。Git资源库托管于GitHub:https://github.com/droolsjbpm Git允许你fork我们的代码,在上面个人独立的进行修改,但仍需要定期的合并我们最新的修改和选择性的分享你的代码给我们。如果想学习更多git知识,可以读一读免费书籍《Git Pro》。

1.3.2.2 构建源码

其实,从源码构建非常简单,比如你想构建guvnor项目:

代码语言:javascript复制
$ git clone git@github.com:droolsjbpm/guvnor.git
...
$ cd guvnor
$ mvn clean install -DskipTests -Dfull
...

然而,业务有很多潜在的误区,所以如果你真的想从源代码构建项目,并对项目作出贡献,按照droolsjbpm-build-bootstrap中ReadMe文件中的说明来做。 地址:https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/README.md

1.3.3. Eclipse

1.3.3.1 引入Eclipse项目

带有Eclipse配置文件的项目,它们可以直接被引入Eclipse。启动Eclipse设置workspace为项目检出根目录。

当使用mvn install命令时,所有项目依赖将被下载,添加到本地maven库。Eclipse无法直接找到它们,除非告诉它资源库的位置,设置M2_REPO环境变量。

译者批注

翻译的同时也在操作实践,发现不同版本的Eclipse显示界面和配置项有所不同。大家可以自行摸索,主要流程没有太多变化。

0 人点赞