3.2. Red Hat Process Automation Manager プロジェクトの Maven でのパッケージ化およびデプロイ
Business Central 以外の Maven プロジェクトを、設定した KIE Server にデプロイする場合は、プロジェクトの pom.xml
ファイルを編集して、プロジェクトを KJAR ファイルとしてパッケージ化し、プロジェクトのアセットに対する KIE ベースおよび KIE セッションの設定が含まれる kmodule.xml
ファイルを追加します。
前提条件
- Red Hat Process Automation Manager ビジネスアセットを含む Maven プロジェクトがある。
-
KIE Server がインストールされており、
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 Process Automation Manager
<version>
を指定するのではなく、Red Hat Business Automation BOM (bill of materials) の依存関係をプロジェクトのpom.xml
ファイルに追加することを検討してください。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 (Bill of Materials) に関する詳細情報は、What is the mapping between Red Hat Process Automation Manager and the Maven library version? を参照してください。
必要に応じて、プロジェクトに Decision Model and 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 モジュールを使用して、1 つ以上の KIE ベースを定義し、各 KIE ベースに 1 つ以上の KIE セッションを定義します。kmodule.xml
設定の詳細は 「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
値、ArtifactId
値、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 のアップグレード履歴によっては、この依存関係を手動で追加して、実行可能なルールモデルの動作を有効にする必要がある場合があります。
実行可能なルールモデルの詳細は、「実行可能ルールモデル」 を参照してください。
プロジェクトをローカルで正常にビルドしてテストした後に、プロジェクトをリモートの Maven リポジトリーにデプロイします。
mvn deploy