3.2. 在 Maven 中打包和部署 Red Hat Process Automation Manager 项目
如果要将 Business Central 之外的 Maven 项目部署到配置的 KIE 服务器,您可以编辑项目 pom.xml
文件,将项目打包为 KJAR 文件,并使用项目中资产的 KIE 基础和 KIE 会话配置添加一个 kmodule.xml
文件。
先决条件
- 您有一个包含 Red Hat Process Automation Manager 商业资产的 Maven 项目。
-
KIE 服务器已安装,并且配置了
kie-server
用户访问。有关安装选项,请参阅 规划 Red Hat Process Automation Manager 安装。
流程
在 Maven 项目的
pom.xml
文件中,将打包类型设置为kjar
,并添加kie-maven-plugin
构建组件:<packaging>kjar</packaging> ... <build> <plugins> <plugin> <groupId>org.kie</groupId> <artifactId>kie-maven-plugin</artifactId> <version>${rhpam.version}</version> <extensions>true</extensions> </plugin> </plugins> </build>
kjar
打包类型激活kie-maven-plugin
组件以验证和预编译工件资源。<version
> 是项目中当前使用的 Red Hat Process Automation Manager 的 Maven 工件版本(例如: 7.52.0.Final-redhat-00007)。需要这些设置来正确地打包 Maven 项目进行部署。注意考虑将 Red Hat Business Automation Manager (BOM)依赖项添加到项目
pom.xml
文件,而不是为单个依赖项指定 Red Hat Process Automation Manager <version
>。Red Hat Business Automation BOM 适用于 Red Hat Decision Manager 和 Red Hat Process Automation Manager。当您添加 BOM 文件时,项目中包含了来自提供的 Maven 存储库传输性依赖关系的正确版本。BOM 依赖项示例:
<dependency> <groupId>com.redhat.ba</groupId> <artifactId>ba-platform-bom</artifactId> <version>7.11.0.redhat-00005</version> <scope>import</scope> <type>pom</type> </dependency>
有关 Red Hat Business Automation BOM 的更多信息,请参阅 Red Hat Process Automation Manager 和 Maven 库版本之间的映射是什么?
可选:如果您的项目包含 Decision Model 和 Notation (DMN)资产,还要在
pom.xml
文件中添加以下依赖项来启用 DMN 可执行模型。DMN 可执行模型可让 DMN 项目中的 DMN 决策表逻辑更有效地评估。<dependency> <groupId>org.kie</groupId> <artifactId>kie-dmn-core</artifactId> <scope>provided</scope> <version>${rhpam.version}</version> </dependency>
在 Maven 项目的
~/resources
目录中,创建一个包含以下内容的META-INF/kmodule.xml
元数据文件:<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"> </kmodule>
此
kmodule.xml
文件是所有 Red Hat Process Automation Manager 项目所需的 KIE 模块描述符。您可以使用 KIE 模块来定义一个或多个 KIE 基础,以及每个 KIE 基础的一个或多个 KIE 会话。有关
kmodule.xml
配置的详情,请参考 第 3.1 节 “配置 KIE 模块描述符文件”。在 Maven 项目中的相关资源中,配置
.java
类来创建 KIE 容器和 KIE 会话来加载 KIE 基础:import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; public void testApp() { // Load the KIE base: KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession(); }
在本例中,KIE 容器读取要从
testApp
项目的类路径构建的文件。KieServices
API 可让您访问所有 KIE 构建和运行时配置。您还可以通过将项目
ReleaseId
传递给KieServices
API 来创建 KIE 容器。ReleaseId
通过项目pom.xml
文件中的GroupId
、ArterfactId
和Version
(GAV) 值生成。import org.kie.api.KieServices; import org.kie.api.builder.ReleaseId; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.drools.compiler.kproject.ReleaseIdImpl; public void testApp() { // Identify the project in the local repository: ReleaseId rid = new ReleaseIdImpl("com.sample", "my-app", "1.0.0"); // Load the KIE base: KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.newKieContainer(rid); KieSession kSession = kContainer.newKieSession(); }
在命令终端中,导航到 Maven 项目目录,并运行以下命令来构建项目:
mvn clean install
对于 DMN 可执行模型,请运行以下命令:
mvn clean install -DgenerateDMNModel=YES
如果构建失败,请解决命令行错误消息中描述的任何问题,并尝试验证文件,直到构建成功为止。
注意如果 Maven 项目中的规则资产默认没有从可执行文件规则模型构建,请验证以下依赖项是否在项目的
pom.xml
文件中,并重建项目:<dependency> <groupId>org.drools</groupId> <artifactId>drools-model-compiler</artifactId> <version>${rhpam.version}</version> </dependency>
默认情况下,Red Hat Process Automation Manager 中的规则资产需要此依赖项。此依赖项作为 Red Hat Process Automation Manager 核心打包的一部分包括,但取决于您的 Red Hat Process Automation Manager 升级历史记录,您可能需要手动添加此依赖项来启用可执行的规则模型行为。
有关可执行规则模型的详情请参考 第 3.4 节 “可执行规则模型”。
成功在本地构建并测试项目后,将项目部署到远程 Maven 存储库:
mvn deploy