安装和使用

Drools提供了一个基于eclipse的IDE(可选),但其核心只需要Java 1.5(Java SE)。

开始的一种简单方法是下载并安装Eclipse插件 — 这还需要安装Eclipse GEF框架(如果你还没有安装Eclipse GEF框架,请参见下面)。这将为你提供所需的所有依赖项:你可以简单地创建一个新的规则项目,一切都会为你完成,请参阅规则工作台和IDE的一章,以获得关于此的详细说明,安装Eclipse插件通常非常简单,只需将文件解压缩到Eclipse插件目录中。

使用Eclipse插件不是必须的,规则文件只是文本输入(或电子表格),IDE(也称为规则工作台)只是一种便利,人们在很多方面集成了规则引擎,没有“一刀切”。

或者,你可以下载二进制发行版,并在项目类路径中包含相关的jar。

依赖和JAR

Drools被分解为几个模块,一些在开发/编译期间需要,一些在运行时需要。在许多情况下,人们只想在运行时包含所有的依赖项,这是比较好的方法,它让你拥有最大的灵活性。然而,有些人可能更喜欢将他们的“运行时”缩减到最低限度,因为他们将以二进制形式部署规则 — 这也是可能的,核心运行时引擎可以非常紧凑,并且只需要在3个JAR文件中使用几个100kb。

下面是组成JBoss Drools的重要库的描述:

  • knowledge-api.jar - 这提供了接口和工厂,它还有助于清楚地显示什么是用户API,什么是引擎API。
  • knowledge-internal-api.jar - 这提供了内部接口和工厂。
  • drools-core.jar - 这是核心引擎,运行时组件。包含RETE引擎和LEAPS引擎,如果你正在预编译规则(并通过包或RuleBase对象部署),这是惟一的运行时依赖项。
  • 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输入格式。

上面的组件还需要一些其他的依赖项,其中大部分是针对drool-compiler、drool-jsr94或drool-decisiontables模块的,需要注意的一些关键内容是提供电子表格解析能力的“POI”和为规则语言本身提供解析的“antlr”。

如果你在J2EE或servlet容器中使用Drools,并且遇到“JDT”的类路径问题,那么你可以切换到janino编译器,设置系统属性“drool.compiler”:例如:-Ddrools.compiler=JANINO

有关发布版中依赖项的最新信息,请参阅发布的POM,该POM可以在Maven存储库中找到。

使用Maven、Gradle、Ivy、Buildr或Ant

jar包也可以在中央Maven存储库中获得(也可以在JBoss Maven存储库)。

如果你使用Maven,请在项目的pom.xml中添加KIE和Drools依赖项,像这样:

<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,并手动验证类路径不包含重复的jar。

runtime

这里提到的“runtime”需求是如果你将规则部署为二进制形式(作为KnowledgePackage对象或KnowledgeBase对象等),这是一个可选的特性,允许你保持运行时非常轻,你可以使用drools-compiler来生成“进程外”的规则包,然后将它们部署到运行时系统中,这个运行时系统只需要drools-core.jar和knowledge-api来执行,这是一种可选的部署模式,许多人不需要“削减”他们的应用程序这么多,但它是某些环境下的理想选择。

安装IDE(规则工作台)

规则工作台(用于Eclipse)要求你具有Eclipse 3.4或更高版本,以及Eclipse GEF 3.4或更高版本,你可以通过下载插件或使用更新站点来安装它。

另一种选择是使用JBoss IDE,它附带了预先打包的所有插件需求,以及其他独立于规则的工具,你可以选择只从JBoss IDE附带的“包”中安装规则。

安装GEF(必需的依赖项)

GEF是Eclipse图形编辑框架,用于在插件中查看图形组件。

如果你没有安装GEF,你可以使用内置的更新机制安装它(或者从Eclipse.org网站下载GEF,不建议),JBoss IDE已经有了GEF, Eclipse的许多其他“发行版”也是如此,因此这一步对某些人来说可能是多余的。

从Help菜单打开Help→Software updates…​→Available Software→Add Site…​,Location是:http://download.eclipse.org/tools/gef/updates/releases/

接下来选择GEF插件:

install_gef.png

点击next,并同意安装插件(可能需要Eclipse重新启动),完成之后,你就可以继续安装规则插件了。

从zip文件安装GEF

要从zip文件安装,请下载并解压该文件,在zip中,你将看到一个插件目录和插件JAR本身,将插件JAR放到Eclipse应用程序插件目录中,然后重新启动Eclipse。

从zip文件安装Drools插件

从下面的链接下载Drools Eclipse IDE插件,在你的主eclipse文件夹中解压缩下载的文件(不要只是复制文件,将其解压缩,以便特性和插件jar最终位于eclipse的特性和插件目录中)并(重新)启动eclipse。

https://www.drools.org/download/download.html

要检查安装是否成功,请尝试打开Drools透视图:单击Eclipse窗口右上角的“Open Perspective”按钮,选择“Other…”并选择Drools透视图。如果你找不到Drools透视图作为可能的透视图之一,那么安装可能未成功。检查是否正确地执行了所需的每个步骤:你有Eclipse的正确版本(3.4.x)吗?是否安装了Eclipse GEF(检查org.eclipse.gef_3.4..jar存在于eclipse根文件夹的插件目录中)?你是否正确地提取了Drools Eclipse插件(检查org.drools.eclipse_.jar存在于eclipse根文件夹的插件目录中)?如果你找不到问题,请尝试联络我们(例如在irc或在用户邮箱列表上),更多资料可在此网页找到:

https://www.drools.org/

Drools runtime

Drools runtime是文件系统上的JAR集合,代表Drools项目JAR的一个特定版本,要创建一个runtime,你必须将IDE指向你选择的版本,如果你想基于插件本身中包含的最新Drools项目jar创建一个新的runtime,你也可以很容易地做到这一点,你需要为你的Eclipse工作区指定一个默认的Drools runtime,但是每个单独的项目都可以覆盖默认值,并为特定的项目选择适当的runtime。

定义Drools runtime

你需要使用Eclipse首选项视图定义一个或多个Drools runtime,要打开你的首选项,请在“菜单”窗口中选择“Preferences”菜单项,一个新的首选项对话框将显示你的所有首选项,在对话框的左侧,在Drools类别下,选择“Installed Drools runtimes”。右边的面板应该显示当前定义的Drools runtimes,如果你还没有定义任何runtimes,它应该如下图所示。

drools-runtimes.png

要定义一个新的Drools runtime,单击add按钮,弹出如下所示的对话框,需要你的runtime名称和文件系统上可以找到它的位置。

drools-runtimes-add.png

一般来说,你有两个选择:

  1. 如果你只想使用Drools Eclipse插件中包含的默认JAR,你可以通过单击“Create a new Drools 5 runtime …”按钮自动创建一个新的Drools runtime,会出现一个文件浏览器,要求你选择文件系统上要创建此runtime的文件夹,然后插件会自动将所有需要的依赖项复制到指定的文件夹中,选择此文件夹后,对话框应如下图所示。
  2. 如果你想使用Drools项目的一个特定版本,你应该在你的文件系统上创建一个包含所有必需的Drools库和依赖项的文件夹,与其如上所述创建一个新的Drools runtime,不如给runtime一个名称并选择包含所有所需jar的文件夹的位置。

drools-runtimes-add2.png

单击OK按钮后,runtime应该显示在已安装的Drools runtime表中,如下所示。单击新创建的runtime前面的复选框,使其成为默认的Drools runtime,默认的Drools runtime将用作所有没有选择特定于项目的runtime的Drools项目的runtime。

drools-runtimes2.png

你可以根据需要添加任意数量的Drools runtime,例如下面的屏幕截图显示了一个配置,其中定义了三个runtime:一个Drools 4.0.7 runtime,一个Drools 5.0.0 runtime和一个Drools 5.0.0.SNAPSHOT runtime,Drools 5.0.0 runtime被选择为默认runtime。

drools-runtimes3.png

请注意,如果更改了默认runtime,则需要重新启动Eclipse,并且需要确保所有使用默认runtime的项目都相应地更新了它们的类路径。

为Drools项目选择runtime

每当你创建Drools项目时(使用“New Drools Project”向导或使用“Convert to Drools Project”操作将现有Java项目转换为Drools项目,当你在Drools透视图中右键单击现有Java项目时,会显示此操作),插件将自动将所有需要的jar添加到项目的类路径中。

当创建一个新的Drools项目时,插件将自动为该项目使用默认的Drools runtime,除非你指定了一个特定于项目的runtime。你可以在“New Drools Project”向导的最后一步中完成这项工作,如下所示,方法是取消“Use default Drools runtime”复选框,并在下拉框中选择适当的runtime。如果单击“Configure workspace settings …​”链接,将打开显示当前安装的Drools runtime的工作区首选项,以便在其中添加新的runtime。

drools-runtimes-newproject.png

你可以随时更改Drools项目的runtime,方法是打开项目属性(右键单击项目并选择“properties”)并选择Drools类别,如下所示。选中“Enable project specific settings”复选框,并从下拉框中选择适当的runtime。如果单击“Configure workspace settings …​”链接,将打开显示当前安装的Drools runtime的工作区首选项,以便在其中添加新的runtime。如果取消选中“Enable project specific settings”复选框,它将使用全局首选项中定义的默认runtime。

drools-runtimes-project.png

从源代码构建

获取源代码

在JBoss Maven存储库中,每个Maven工件的源代码都可以作为源代码JAR文件使用,下载的zip文件中也包含了相同的源代码jar文件,但是,如果你想从源代码构建,强烈建议从源代码控制中获取源代码。

Drools和jBPM使用Git进行源代码控制,blessed git存储库位于GitHub上:

Git允许你对我们的代码进行fork,独立地对其进行个人更改,但仍然会定期合并我们的最新更改,并有选择地与我们共享你的更改,要了解更多关于git的信息,请阅读免费书籍Git Pro

构建源代码

在本质上,从源代码构建非常简单,例如,如果你想构建guvnor项目:

$ git clone git@github.com:kiegroup/guvnor.git
...
$ cd guvnor
$ mvn clean install -DskipTests -Dfull
...

但是,这里有很多潜在的缺陷,所以如果你真的想从源代码构建并可能为项目做出贡献,请遵循droolsjbpm-build-bootstrap中README文件中的说明。

Eclipse

导入Eclipse项目

通过生成Eclipse项目文件,现在可以将它们导入Eclipse,启动Eclipse时,在subversion检出的根目录中打开工作区。

eclipse_import1.jpg

eclipse_import2.jpg

eclipse_import3.jpg

eclipse_import4.jpg

在调用mvn install时,下载了所有项目依赖项并将其添加到本地Maven存储库,Eclipse无法找到这些依赖项,除非你告诉它存储库在哪里,为此,设置一个M2_REPO classpath变量。

eclipse_import6.jpg

eclipse_import7.jpg

eclipse_import8.jpg

eclipse_import9.jpg


上一篇:Drools 文档(参与)
下一篇:Drools 文档(KIE概述)

博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论