• PowerPiggy 博客



    title: Drools 6官方文档 1
    date: 2016-07-10 19:07:43

    description: 学习drools6 顺便翻译,英语很不好,翻译的很慢

    # Drools 6官方文档 1

    1 总体介绍

    1.1 介绍

      这是一个繁忙的一年,因为最后的5.x版本发布后,6.0版本发生了大量的变化。

      在5.X系列的最大的抱怨之一是缺乏简单的部署方法。使用Drools和JBPM的机制是非常灵活的,但它太灵活,以至于反而有些复杂。6.x的一个重要的方面就是是简化系统的构建、部署和加载等方面复杂度。构建和部署使用Maven,使用约定和配置取代编程方式,并提供默认的完整的最小化配置。

      工作台(workbench)已经重建,受到Eclipse的启发,通过插件(plugin)和视图(perspectives)等方式,提供一个灵活的更好的集成解决方案。基本的工作台已经分拆成一个叫做uberfire独立的项目,所以任何人都可以建立高质量的基于Web的工作平台。从长期来看这将便于用户定制的Drools和JBPM的安装。

      Git的替代JCR作为内容存储库,提供了快速的可伸缩的后端内容存储,并且拥有强大的工具支持。近一个时期以来,内容存储从简单的数据库转移聚焦到存储一切文本文件,甚至元数据只是一个文件。数据库是只是为了提供快速索引,并通过Lucene搜索。这将使内容仓库可以进行同步并发布,比如发布到GitHub等。

      jBPM的有了极大的加强了,这要归功对Polymita收购,任务,表单设计器,对象建模,执行服务器和运行管理等都完全融入新的工作台。

      OptaPlanner现在是一个顶级项目,并获得全职的关注。

      在一个新的总称,KIE(Knowledge Is Everything 知识就是一切)之下,已经将我们的相关技术结合在一起。并且成为我们各个项目的核心。让我们拭目以待。

    1.2 如何参与项目

      我们经常被问“我如何参与进来。”幸运的是,答案很简单,只写一些代码,并提交吧:),没有其他的特殊要求。下面是我们提供的工具的概述和“工作流程”,还有一些一些一般性的建议。

      如果你贡献了很好的工作,不要忘记发布在博客吧:)

    1.2.1 在jboss.org上注册用户

      在Jboss.org上注册用户,你就可以访问JBoss Wiki,论坛以及JIRA ,请到http://www.jboss.org/ 点击注册。

    1.2.2 签署贡献者协议

    1.2.3 通过JIRA提交问题

    1.2.4 在GitHub上Fork代码

    1.2.5 编写测试

      在编写测试时,尽量使他们最小化的,自包含的。我们宁愿保持测试中的DRL片段,它能够被快速审查。使用一个字符串表达大量的规则是不切实际的,应该把他们编写在多个分离的DRL文件中,如果你的测试需要模型对象,请使用在其他测试中已经存在的模型对象,比如人、奶酪、订单等,如果已经存在的模型对象无法满足你的需要,请优先考虑扩展已有的模型对象,最后才是添加新的模型对象。

      MiscTest上提供了大量的测试,通过其或许你可以获得一些灵感。  
      下边是一个测试样例  
      https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
     

    1.2.6 用正确的提交约定

    1.2.7 提交Pull请求

    1.3安装

    1.3.1安装和使用

      Drools提供基于Eclipse的IDE(当然这个是可选的),而且在Java1.5上即可运行。
      开始的最简单方法是下载和安装Eclipse插件, 这首先需要安装了Eclipse GEF框架(见下文,如果你还没有安装GEF)。这个插件可以为你解决所有的依赖问题,你可以方便地创建规则项目,插件可以为你完成相关的所有事情,相关内容请参看规则工作台和IDE,安装插件只需要下载插件压缩文件,并解压到Eclise的plugins目录下。
    这将为你提供你需要得到持续的所有依赖:你可以简单地创建一个新的规则项目,一切都会为你完成。请参阅有关规则工作台和IDE查找有关此详细说明的章节。安装Eclipse插件通常作为解压文件到你的Eclipse插件目录。

      使用Eclipse插件并不是必需的。规则文件只是文本格式(或电子表格视情况而定),而IDE(也称为规则工作台)仅仅是为了方便。可以使用各种方法集成规则引擎,不存在一刀切的方法。

      或者,你可以下载二进制发行版,并且将其中的Jar文件加入到你的项目的classpath中。

    1.3.1.1 Drools的Jar以及依赖

      Drools中被分解成几个模块,有些模块是规则开发/编译期间所需的,有些是在运行时必需的。在许多情况下,人们只是想包括在运行时所有的依赖,而不包括开发/编译模块。drools这样分解模块,可以让你有最大的灵活性。不过,有些人可能更喜欢有自己的“运行环境”精简到最低限度,他们会以二进制形式部署规则,这也是可能的。核心运行时间引擎可以是相当紧凑,而且只需要跨3JAR文件数100千字节。

    以下是JBoss Drools的重要库的说明。

      knowledge-api.jar 提供接口定义和工厂。它还有助于清楚地表明了什么是用户API和什么是引擎API。

      knowledge-internal-api.jar 提供内部接口和工厂。

      drools-core.jar 这是核心引擎,运行时组件。同时包含RETE引擎和LEAPS引擎。当你使用预编译的规则(并通过打包或RuleBase部署)时,这是唯一的运行时依赖。

      drools-compiler.jar含编译器/构建组件,可以将规则源代码编译成可执行的规则库。通常将此组件包含到程序的运行环境中,但是如果你采用预编译规则,就不需要将此组件加入到运行环境中。
      
      drools-jsr94.jar 这是JSR-94兼容的实现,这基本上是基于Drools的编译器组件的包装层。注意,由于对JSR-94规范的性质,并非所有的功能都容易通过该接口导出。在某些情况下,更加方便的方式是直接使用Drools的API,但是在某些环境中还是需要JSR-94的兼容实现的。

      drools-decisiontables.jar 这是决策表“编译”组件,它使用Drools的编译器组件,支持Excel和CSV输入格式。
      
      上面这些组件还依赖相当多的其他组件,其中大部分drools-compiler.jar,drools-jsr94.jar和drools-decisiontables.jar的依赖。比如“POI”提供电子表格的解析能力,而“ANTLR”,提供规则语言自身的解析能力。

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

      要想了解最新release版本的依赖,可以查看Release的POM文件,这个文件可以在Maven仓库中找到。

    1.3.1.2使用Maven、Gladle、Ivy、Buildr和Ant

      这些Jar已经发布到Maven的中心仓库中(the central Maven repository), 在the JBoss Maven repository也可以找到。
      
      如果你使用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 大专栏  PowerPiggy 博客-compiler</artifactId>
          <scope>runtime</scope>
        </dependency>
        ...
      <dependencies>
    

      Gradle, Ivy和Buildr的方法与此相似,要查看最新的版本,请检查Maven仓库。
      
      如果你还在使用Ant(不使用ivy),解压并复制下载的zip中二进制文件目录中所有的JAR文件并手动检查您的CLASSPATH不包含重复的JAR文件。

    1.3.1.3运行时

      这里所说的“运行时”是指你使用编译好的二进制形式(无论是KnowledgePackage对象或KnowledgeBase对象)发布规则。这是一个可选功能,可以让你保持你的运行时很轻。您可以使用Drools的编译器先编译产生规则包,然后将它们部署到运行系统。这个运行时系统只需要的drools-core.jar和knowledge-api.jar,用于执行。这是一个可选的部署模式,许多人并不需要这样“调整”自己的应用程序,但它是在某些特定环境下的理想选择。

    1.3.1.4安装IDE (规则工作台)

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

      另一种选择是使用JBoss的IDE,它配备了所有插件要求预包装。

    1.3.1.4.1 安装GEF

    1.3.1.4.2 用Zip方式安装GEF

    1.3.1.4.3 用Zip方式安装Drools插件

      从下面的链接下载Drools的Eclipse IDE的插件。解压缩在你的Eclipse文件夹,(不只是复制文件,而且还需要将其解压缩,这样插件的JAR文件在解压至Eclipse的插件目录(plugins)中),并重新启动Eclipse。

    http://www.drools.org/download/download.html
      
      要检查是否安装成功,尝试打开Drools的视图:在你的Eclipse窗口的右上角点击“打开透视图”按钮,选择“其他…”,并挑选Drools的视图。如果你无法找到Drools的视图,可能如下问题之一,安装可能不成功。安如下步骤进行检查:你的Eclipse版本是否正确(3.4.x)?你已经安装了Eclipse GEF(检查插件目录是否存在org.eclipse.gef3.4.jar)?您是否正确提取的Drools Eclipse插件(检查插件目录是否存在org.drools.eclipse *.JAR的)?如果你不能找到问题,尝试联系我们(例如,在IRC或用户邮件列表),更多信息也可以查看我们的主页:

      http://www.drools.org/

    1.3.1.4.4 Drools运行时

      在使用Eclipse IDE时,可以指定Drools的运行时,所谓Drools的运行时,就是特定Drools版本的一组Jar文件,你需要在Eclipse中指定默认的Drools运行时,并且每个项目也可以单独设置Drools运行时,项目中的设置将覆盖Eclipse的默认设置。

    ####### 1.3.1.4.4.1 定义Drools运行时
      你需要为Eclipse定义Drools运行时,打开Eclipse preferences ,找到Drools,选择“Installed Drools runtimes”,在对话框的右侧会显示当前已经定义的Drools运行时,如下图(还未定义任何的Drools运行时)

      要定义一个新的Drools运行时,点击添加按钮。如下图所示的对话框会弹出,输入运行时的名称和运行时文件所在的目录。

      这里有两种做法。

      一是如果你想直接使用默认的Drools运行时,你可以点击“Create a New Drools 5 Runtime” ,然后会弹出一个路径选择框,在这个对话框中,你可以选择运行时所在的目录,Eclipse 插件会自动下载运行时所需要的文件文件到这个目录中。

      二是如果你想使用Drools的指定版本,你需要自己拷贝Drools的Jar文件以及相关依赖到指定目录下,并在上面的对话框中进行设置。

      在输入完毕后,单击确定按钮,新创建的运行时间应该显示在Drools运行列表中,如下图所示。在新创建的运行时前点击复选框以使其成为默认的Drools运行时。那些没有指定自己的Drools运行时的项目将使用默认的Drools运行时。

      您可以根据需要添加各种Drools运行时。例如,下面的屏幕截图显示,其中定义了3个运行时:Drools的4.0.7运行时,Drools的5.0.0运行和Drools的5.0.0.SNAPSHOT运行时。 Drools的5.0.0运行时被选定为默认的运行时。

      需要注意的是,如果你调整了默认的运行时,则需要重新启动Eclipse,以使使用默认运行时的项目可以更新相关的路径。

    ####### 1.3.1.4.4.2 为你的Drools项目选择运行时
      当你使用Drools项目向导创建新项目,或者将一个已有项目转换成Drools项目(在Drool视图中,右击已有项目选择“Convert to Drools Project”)时,Eclipse插件会自动将Drools运行时所需要的Jar包加入到项目的ClassPath中。

      当创建一个新的Drools项目,Eclipse插件会为项目自动使用默认的Drools运行时,当然你也可以自己制定Drools运行时,在Drools项目向导的最后一步,取消“Use default Drools runtime” 的选择框的选择,并在下拉框中选择适合你的Drools运行时。如果你点击“Configure workspace settings …”会显示当前已经安装的Drools运行时,你也可以在这里添加新的Drools运行时。

      你也可以在任何时候在项目属性中修改Drools运行时,打开项目属性,选择Drools,如下图,选中"Enable project specific settings",并且在下面的列表框中选择项目需要的运行时,你也可以点击"onfigure workspace settings …",调整或添加新的运行时.如果你不选择"Enable project specific settings",则项目会使用默认的运行时.

    1.3.2 编译源码

    1.3.2.1 获取源码

      在JBoss Maven repository中可以找到源代码的Jar包,同样的源码包也存在于下载的Zip文件中,如果你想编译源码,强烈建立你到我们的源码服务器上下载源码,我们使用GitHub作为源码服务器。

      Drools和Jbpm使用Git进行源码管理,并托管于GitHub。

      地址为:https://github.com/droolsjbpm

      你可以在GitHub上Fork源码,并修改这些源码,并可以选择与我们分享这些修改,并合并进最新的版本中。如果想了解Git的更多信息,可以选择阅读Git的一些免费书籍。

    1.3.2.2 编译这些源码

      从本质上说,编译这些源码很容易,例如你想编译guvnor项目。

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

    当然如果你想从源码进行构建,还是会存在很多编译的陷阱,请参阅Drools编译引导的README的信息。

    1.3.3 使用Eclise查看源码

    ##### 1.3.3.1 导入Eclipse项目
      Drools源码中提供Eclipse的项目文件,所以这些项目也可以直接导入到Eclipse中,将Eclise的workspace设置到源码根目录,就可以导入这些项目。

      然后使用MVN下载这些项目所需要的依赖包,并保存至本地的Maven仓库中,Eclipse自己无法找到这些依赖,你告诉她仓库在哪里,即设置M2_REPO路径变量。

  • 相关阅读:
    创建onlineworkspace问题仍没解决?
    Javascript 脚本错误.
    从HtmlInputFile控件中读取文件 保存到document libary中.
    Request.Form.Get
    DataGrid 模板列里 寻找所在列的隐藏列的值
    test
    重写ProgressDialog,实现各种个性进度条需求(含源码)
    Android自定义控件实现环形播放进度条
    为你的应用添加悬浮窗功能
    Android 左右滑动 控件
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12433444.html
Copyright © 2020-2023  润新知