3.2. 在 Maven 中打包和部署 Red Hat Process Automation Manager 项目


如果要将 Business Central 之外的 Maven 项目部署到配置的 KIE 服务器,您可以编辑项目 pom.xml 文件,将项目打包为 KJAR 文件,并使用项目中资产的 KIE 基础和 KIE 会话配置添加一个 kmodule.xml 文件。

先决条件

流程

  1. 在 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 组件以验证和预编译工件资源。& lt;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 库版本之间的映射是什么?

  2. 可选:如果您的项目包含 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>
  3. 在 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 模块描述符文件”

  4. 在 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 文件中的 GroupIdArterfactIdVersion (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();
    
    }
  5. 在命令终端中,导航到 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 节 “可执行规则模型”

  6. 成功在本地构建并测试项目后,将项目部署到远程 Maven 存储库:

    mvn deploy
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.