Drools8.44.0官方文档翻译(一):介绍与源码安装教程

文章来源Introduction: Drools Document
本文简介:本文翻译自Drools 8.44.0.Final版本的官方文档。本文对Drools进行了简述,介绍了如何对Drools源码的迭代做出贡献和如何从源码安装Drools。并且译者还根据自身环境配置经历,完善了官方文档中从源码安装Drools的过程。
翻译初衷:由于国内缺乏Drools(尤其是8.x版本)相关资料,没有一条龙式的安装指南,且8.x版本同7.x版本的官方文档有较大差异,因此译者认为对8.x版本的官网文档进行翻译和完善是有必要的

Drools 是一组专注于智能自动化和决策管理的项目,主要提供基于推理的前向链和后向链规则引擎、DMN 决策引擎和其他项目。规则引擎是创建专家系统的基本构件,在人工智能领域,专家系统是一个模拟人类专家决策能力的计算机系统。

Drools 是 基尔(KIE, Knowledge Is Everything)开源社区的一部分,该社区由各种相关项目或项目组组成,为业务自动化和管理提供完整的解决方案组合。其他最重要的 KIE 项目或项目群包括:

  1. Kogito 是一款用于构建智能应用程序的云原生业务自动化工具,其功能久经考验。它由多个组件组成,包括 Drools、用户界面建模工具(如 VS Code 编辑器扩展等)。
  2. OptaPlanner 是一款面向软件开发人员的快速、易用、开源人工智能约束求解器。它是一个轻量级、可嵌入的规划引擎
  3. jBPM 是一个用于构建业务应用程序的工具包,可帮助实现业务流程和决策的自动化。

其他资源

Drools源代码(GitHub - kiegroup/drools: Mirror of https://github.com/apache/incubator-kie-drools)

如何参与到源码开发中

我们经常被问到:“我如何参与其中?”答案很简单,只需编写一些代码并提交即可🙂

以下是我们的要求概览,以及一些一般性建议。如果您贡献了一些好的作品,请考虑将其写入博客🙂

要求

在贡献代码之前,您需要拥有:

  1. JIRA 帐户。如果您尚未注册,请在 JIRA 中创建一个账户。
  2. GitHub 账户。Drools 的源代码在 GitHub 上。要提交代码,您需要有一个 GitHub 账户。

步骤一:通过JIRA提交问题(issue)或改进请求

我们使用 JIRA 来跟踪新的功能请求和错误等。如果您发现了 Drools 中的问题,请在 DROOLS JIRA 项目下的 JIRA 中提交一个错误报告。对于代码贡献,您可以为自己创建一个 JIRA 报告,这样您的贡献就会被跟踪。这样可确保所有请求都被记录并分配到发布计划中,所有讨论都被记录在一个地方。错误报告、错误修复、功能请求和功能提交都应在这里进行。一般问题应在邮件列表中提出。提交的次要代码(如格式或文档修复)不需要创建相关的 JIRA 问题。

步骤二:通过GitHub PR提交要贡献的源代码

详参:droolsjbpm-build-bootstrap/README.md at main · kiegroup/droolsjbpm-build-bootstrap · GitHub

我们接受 GitHub 拉取请求(PR)形式的源代码贡献。创建拉取请求的步骤如下:

  1. 创建 Drools 源代码存储库的分支。

  2. 克隆您的分叉仓库。

  3. 在您的分叉仓库上创建一个新的 git 分支。

  4. DROOLS JIRA 项目中创建一个新的 JIRA 来跟踪您的工作。

  5. 在新分支上进行代码修改并提交。

    • 请不要忘记在提交前测试你的代码。我们要求每项代码更改都要经过测试。
    • 提交需要以 JIRA 问题 ID 开头,如 DROOLS-1946。这样可以确保提交在 JIRA 中相互参照,这样我们就能在 JIRA 中看到特定问题的所有提交。
    • 一般来说,请尽量避免将不相关的问题或变更合并到同一个提交或拉动请求中。如果您想贡献多个内容,请将它们分成不同的拉取请求。
    • 请确保您的更改不会破坏项目的其他部分或测试。要运行所有测试,请参阅#从源代码安装Drools
  6. 将新分支推送到您的 GitHub 分支仓库。通常情况下,在推送新分支之前,最好先将本地分支与主 Drools 源代码仓库中的最新修改同步(sync your local branch)

  7. 向 GitHub 主 Drools 源代码仓库创建拉取请求(PR)。创建拉取请求时,会有一个描述模板。请根据模板填写描述。默认情况下,"允许维护者编辑和访问机密(Allow edits and access to secrets by maintainers)"设置应保持启用状态,以便维护者根据需要对您的 PR 进行协作。

  8. 您的拉取请求将得到维护者的审核,因此请做好准备,如果您的PR有维护者不清楚的地方,请回复维护者的疑问;如果在审核过程中提出了一些代码要求,请提供代码更新。请耐心等待,维护者可能需要一些时间才能处理您的拉取请求,因为可能有很多拉取请求需要审核。

  9. 如果维护者批准了您的请求,该请求将被合并到 Drools 源代码库中。

从远程仓库安装

请参考此篇文章:《Drools8.44.0官方文档翻译(二):远程库安装和Decision Service的使用教程(上)》

从源代码安装Drools

Drools 主要是一套基于 Java 的项目,使用 Maven 作为构建系统。要构建 Drools 资源库,请执行以下操作(由于原文对本小节的描述极为简略,因此译者对本节进行了完善,以下均基于Linux系统和IntelliJ编译器展开介绍):

步骤一:安装 Java JDK,至少版本 11

参考:小白搭建Linux下java11环境(以java-11.0.8为例)

  1. 在终端使用java -version查看系统是否自带java环境,若无响应则说明未自带;若有,使用yum list installed | grep javarpm -qa | grep java查看自带的java版本是否等于或高于11,较小的版本无需删除(在IntelliJ中可以选择JDK版本)
  2. 若没有符合要求的JDK,从官网下载至指定文件夹
  3. 进入压缩包所在文件夹并解压(以JDK 11.0.21为例)
    tar -zxvf jdk-11.0.21_linux-x64_bin.tar.gz  
    
    也可以通过参数-C指定解压至指定文件夹,若不设置则解压至压缩包所在源目录
    tar -zxvf jdk-11.0.21_linux-x64_bin.tar.gz -C [指定文件夹地址]
    
  4. 设置环境变量(本文选择修改用户环境变量而非全局环境变量)。使用vim /etc/profile进入文件,输入i进入编辑模式,在文件最底部插入:
    export JAVA_HOME=[压缩包解压后所在地址]/jdk-11.0.21
    export CLASSPATH=:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    
    esc,再输入:wq保存退出,输入source /etc/profile使修改的环境生效
  5. 再次使用java -version查看是否安装成功

步骤二:安装至少 3.8.6 版本的 Maven

参考:
[1] Linux安装maven(详细教程)
[2] linux下配置maven后使用命令mvn报错NB: JAVA_HOME should point to a JDK not a JRE解决方案
[3] Linux下安装maven, mvn -v报错: JAVA_HOME should point to a JDK not a JRE

Tip:尽量使用最新的 Maven 版本。

安装步骤

  1. 官网下载最新版maven
    在这里插入图片描述

  2. 解压maven压缩包(译者解压在/opt/maven目录下)

  3. 进入解压后文件夹(以apache-maven-3.9.6为例)所在位置,并配置maven仓库(建议配置,国内的下载jar快些),设置阿里镜像仓库。首先cd apache-maven-3.9.6进入目录,然后创建仓库存储目录mkdir ck,接着cd conf进入conf目录,并vi settings.xml编辑文件,找到标签<localRepository>和<mirror>并粘贴以下相应代码(请自行修改解压后的maven文件夹所在位置),如下图所示:

    <localRepository>/opt/maven/apache-maven-3.9.6/ck</localRepository>
    
    <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
           <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
    </mirror>
    

    在这里插入图片描述
    在这里插入图片描述

  4. 保存settings.xmlx修改后配置maven环境变量。此处译者同样是修改用户环境变量。先vim ~/.bashrc,在最后一行加上以下代码(请自行修改解压后的maven文件夹所在位置) ,保存退出。

    export MAVEN_HOME=/opt/maven/apache-maven-3.9.6
    export PATH=$PATH:$MAVEN_HOME/bin
    
  5. 重新加载环境变量source ~/.bashrc

  6. 测试安装结果mvn -v,如下图所示,若终端成功返回版本信息,说明安装成功。
    在这里插入图片描述

错误提示

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

出现以上错误,可能是因为直接installjava-XXX-openjdk.XXX 并出现以下两种情况(若参照以上安装步骤应该不会出现这种错误):

  1. 只安装了jre没有安装对应的java-XXX-openjdk-devel.XXX
  2. 环境变量JAVA_HOME设置错误,没有直接指向java所在根目录,而指向了其软链接对象(详参本小节参考文献[3])

步骤三:克隆 Drools 源代码库。

  • 以下是官方文档的操作指南,但是,可能受环境影响,译者无法根据步骤四成功编译直接克隆得到的源代码,因此不建议这样操作
git clone https://github.com/kiegroup/drools.git
cd drools
  • 译者的建议是在GitHub官方库中选择自己目标版本的Tag(如下图所示),然后下载压缩文件并解压至本地目录中
    • 注:采用此方法译者尝试编译了8.44.0.Final、8.40.Final和7.74.0.Fianl版本,只成功编译了7.74.0.Final版本,如果有成功编译其他版本的朋友,欢迎在评论区分享一下成功经验
      在这里插入图片描述

步骤四:在命令行上运行 Maven 编译。

编译

先进入克隆下来的官方源码或解压后的文件夹内(这些文件夹内都会有一个pom.xml文件),通过测试执行 Maven 构建(Maven build executed with tests:):

mvn clean install

在没有测试的情况下执行 Maven 构建(Maven build executed without tests):

mvn clean install -Dquickly

错误提示

参考:Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.

注:本小节的操作只能解决所描述的错误,并不意味着这样操作后不会继续产生bug
在这里插入图片描述
我在使用mvn clean install -Dquickly进行编译时出现如上图所示的错误(图中是一个警告,但是在后续的返回信息中变成了错误),表明程序没有权限访问指定文件。为了快速解决问题,译者直接给了/opt/maven及其所有子文件最高权限:

sudo chmod -R 777 /opt/maven  

然后重新执行编译指令又出现了新错误(如下图所示),该问题的产生可能是因为发生了依赖冲突问题。
在这里插入图片描述
根据本小节参考资料,可以通过以下编译指令跳过 enforcer 插件的规则检查(Enforcer 插件用于强制项目的配置和依赖符合一些规则)

mvn clean install -DskipTests  -Denforcer.skip=true
  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值