第9章 Red Hat Process Automation Manager の Maven 設定およびリポジトリー

Red Hat Process Automation Manager プロジェクトの作成時に、Business Central は Business Central 用に設定された Maven リポジトリーを使用します。Maven project object model (POM) ファイル (pom.xml) を変更することで、Maven グローバルまたはユーザー設定を使用し、すべての Red Hat Process Automation Manager プロジェクトに対して Red Hat Process Automation Manager の公開リポジトリーから依存関係を取得するように指示できます。また、Business Central と KIE Server が外部の Maven リポジトリーを使用するか、Maven のミラーを準備してオフラインで使用できるように設定できます。

Red Hat Process Automation Manager のパッケージ化およびデプロイメントのオプションに関する詳細は、『Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイ』を参照してください。

9.1. プロジェクト設定ファイル (pom.xml) を使用した Maven の設定

Maven を使用して Red Hat Process Automation Manager プロジェクトをビルドおよび管理するには、POM ファイル (pom.xml) を作成および設定する必要があります。このファイルにはプロジェクトの設定情報が含まれます。詳細は「Apache Maven Project」を参照してください。

手順

  1. Maven プロジェクトを生成します。pom.xml ファイルは、Maven プロジェクトの作成時に自動的に生成されます。
  2. pom.xml ファイルを編集して、追加の依存関係および新たなリポジトリーを追加します。

    プロジェクトのコンパイルおよびパッケージング時に、Maven がすべての JAR ファイルおよび依存関係にある JAR ファイル を Maven リポジトリーからダウンロードします。

pom.xml ファイルのスキーマは、http://maven.apache.org/maven-v4_0_0.xsd から取得できます。POM ファイルの詳細は「Apache Maven Project」を参照してください。

9.2. Maven 設定ファイルの修正

Red Hat Process Automation Manager では、Maven の settings.xml ファイルを使用して Maven の実行を設定します。settings.xml ファイルにプロファイルを作成およびアクティベートし、Red Hat Process Automation Manager プロジェクトが使用する Maven リポジトリーを宣言します。

Maven の settings.xml ファイルの詳細は Apache Maven Project の 「Setting Reference」を参照してください。

手順

  1. settings.xml ファイルでは、Red Hat Process Automation Manager プロジェクトが使用するリポジトリーを宣言します。通常、これは online Red Hat Process Automation Manager Maven repository、または Red Hat カスタマーポータルからダウンロードする Red Hat Process Automation Manager Maven リポジトリーおよび使用するカスタムアーティファクト用のリポジトリーのいずれかです。
  2. たとえば <SETTINGS_FILE_PATH>settings.xml ファイルのパスである kie.maven.settings.custom=<SETTINGS_FILE_PATH> プロパティーを指定して、Business Central または KIE Server が settings.xml ファイルを使用するように設定されていることを確認します。

    Red Hat JBoss Web Server で、KIE Server の場合は -Dkie.maven.settings.custom=<SETTINGS_FILE_PATH>setenv.sh (Linux) または setenv.bat (Windows) ファイルの CATALINA_OPTS セクションに追加します。スタンドアロンの Business Central の場合は、以下のコマンドを入力します。

    java -jar rhpam-7.8.0-business-central-standalone.jar -s application-config.yaml -Dkie.maven.settings.custom=<SETTINGS_FILE_PATH>

9.3. Red Hat Process Automation Manager の Maven 依存関係の追加

Red Hat Process Automation Manager プロジェクトで適切な Maven 依存関係を使用するには、プロジェクトの pom.xml ファイルに Red Hat Business Automation の BOM (bill of materials) ファイルを追加します。Red Hat Business Automation BOM は、Red Hat Decision Manager と Red Hat Process Automation Manager の両方に適用されます。BOM ファイルを追加すると、提供される Maven リポジトリーから、推移的依存関係の適切なバージョンがプロジェクトに含められます。

Red Hat Business Automation BOM (Bill of Materials) についての詳細は「What is the mapping between Red Hat Process Automation Manager and the Maven library version?」を参照してください。

手順

  1. Red Hat Business Automation BOM を pom.xml ファイルで宣言します。

    <dependencyManagement>
     <dependencies>
      <dependency>
       <groupId>com.redhat.ba</groupId>
       <artifactId>ba-platform-bom</artifactId>
       <version>7.8.0.redhat-00005</version>
       <type>pom</type>
       <scope>import</scope>
      </dependency>
     </dependencies>
    </dependencyManagement>
    <dependencies>
    <!-- Your dependencies -->
    </dependencies>
  2. <dependencies> タグでお使いのプロジェクトに必要な依存関係を宣言します。製品の BOM をプロジェクトにインポートしたら、ユーザー向け製品依存関係のバージョンが定義されるため、<dependency> 要素のサブ要素 <version> を指定する必要はありません。ただし、<dependency> 要素を使用して、プロジェクトで使用する依存関係を宣言する必要があります。
  3. Business Central に作成されない標準のプロジェクトでは、お使いのプロジェクトに必要な依存関係をすべて指定します。Business Central に作成するプロジェクトでは、基本的なデシジョンエンジンとプロセスエンジンの依存関係が Business Central に自動的に提供されます。

    • 標準的な Red Hat Process Automation Manager プロジェクトでは、使用する機能に応じて、以下の依存関係を宣言します。

      埋め込みプロセスエンジン依存関係

      <!-- Public KIE API -->
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
      </dependency>
      
      <!-- Core dependencies for process engine -->
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-flow</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-flow-builder</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-bpmn2</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-runtime-manager</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-persistence-jpa</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-query-jpa</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-audit</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-kie-services</artifactId>
      </dependency>
      
      <!-- Dependency needed for default WorkItemHandler implementations. -->
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-workitems-core</artifactId>
      </dependency>
      
      <!-- Logging dependency. You can use any logging framework compatible with slf4j. -->
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>

    • CDI を使用する Red Hat Process Automation Manager プロジェクトでは、通常、以下の依存関係を宣言します。

      CDI が有効化されたプロセスエンジンの依存関係

      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-kie-services</artifactId>
      </dependency>
      
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-services-cdi</artifactId>
      </dependency>

    • 標準的な Red Hat Process Automation Manager プロジェクトでは、以下の依存関係を宣言します。

      埋め込みデシジョンエンジン依存関係

      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
      </dependency>
      
      <!-- Dependency for persistence support. -->
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-persistence-jpa</artifactId>
      </dependency>
      
      <!-- Dependencies for decision tables, templates, and scorecards.
      For other assets, declare org.drools:business-central-models-* dependencies. -->
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-templates</artifactId>
      </dependency>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-scorecards</artifactId>
      </dependency>
      
      <!-- Dependency for loading KJARs from a Maven repository using KieScanner. -->
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-ci</artifactId>
      </dependency>

    • KIE Server を使用するには、以下の依存関係を宣言します。

      クライアントアプリケーション KIE Server の依存関係

      <dependency>
        <groupId>org.kie.server</groupId>
        <artifactId>kie-server-client</artifactId>
      </dependency>

    • Red Hat Process Automation Manager にリモートクライアントを作成するには、以下の依存関係を宣言します。

      クライアントの依存関係

      <dependency>
        <groupId>org.uberfire</groupId>
        <artifactId>uberfire-rest-client</artifactId>
      </dependency>

    • ルール、プロセス定義など、アセットを含む JAR ファイルを作成する場合は、お使いの Maven プロジェクトのパッケージングの種類を kjar とし、org.kie:kie-maven-plugin を使用して、<project> 要素に置かれた kjar パッケージングタイプを処理します。以下の例の ${kie.version} は、「What is the mapping between Red Hat Process Automation Manager and the Maven library version?」に記載されている Maven ライブラリーのバージョンです。

      <packaging>kjar</packaging>
      <build>
       <plugins>
        <plugin>
         <groupId>org.kie</groupId>
         <artifactId>kie-maven-plugin</artifactId>
         <version>${kie.version}</version>
         <extensions>true</extensions>
        </plugin>
       </plugins>
      </build>

9.4. オフラインで使用する Maven ミラーリポジトリーの用意

公開インターネットへの送信アクセスが、Red Hat Process Automation Manager のデプロイメントに設定されていない場合には、必要なアーティファクトすべてのミラーが含まれる Maven リポジトリーを用意して、このリポジトリーを使用できるようにする必要があります。

注記

Red Hat Process Automation Manager デプロイメントがインターネットに接続されている場合には、この手順を実行する必要はありません。

前提条件

  • 公開インターネットへの送信アクセスが設定されているコンピューターが利用できる。

手順

  1. 公開インターネットに送信アクセスができるコンピューターで、以下のアクションを実行します。

    1. Red Hat Process Automation Manager 7.8.0 Offliner Content List をクリックして、Red Hat カスタマーポータルの Software Downloads ページから rhpam-7.8.0-offliner.zip の製品配信可能ファイルをダウンロードします。
    2. rhpam-7.8.0-offliner.zip ファイルの内容を任意のディレクトリーに展開します。
    3. ディレクトリーに移動し、以下のコマンドを入力します。

      ./offline-repo-builder.sh offliner.txt

      このコマンドは、repository サブディレクトリーを作成し、必要なアーティファクトをこのサブディレクトリーにダウンロードします。

      一部のダウンロードが失敗したことを示すメッセージが表示された場合は、同じコマンドを再度実行してください。ダウンロードが再び失敗する場合は、Red Hat サポートに連絡してください。

  2. Business Central 外でサービスを開発し、追加の依存関係がある場合には、ミラーリポジトリーにその依存関係を追加します。サービスを Maven プロジェクトとして開発した場合には、以下の手順を使用し、これらの依存関係を自動的に用意します。公開インターネットへに送信接続できるコンピューターで、この手順を実行します。

    1. ローカルの Maven キャッシュディレクトリー (~/.m2/repository) のバックアップを作成して、ディレクトリーを削除します。
    2. mvn clean install コマンドを使用してプロジェクトのソースをビルドします。
    3. すべてのプロジェクトで以下のコマンドを入力し、Maven を使用してプロジェクトで生成したすべてのアーティファクトのランタイムの依存関係をすべてダウンロードするようにします。

      mvn -e -DskipTests dependency:go-offline -f /path/to/project/pom.xml --batch-mode -Djava.net.preferIPv4Stack=true

      /path/to/project/pom.xml は、プロジェクトの pom.xml ファイルへの正しいパスに置き換えます。

    4. ローカルの Maven キャッシュディレクトリー (~/.m2/repository) の内容を、作成した repository サブディレクトリーにコピーします。
  3. repository サブディレクトリーのコンテンツを、Red Hat Process Automation Manager をデプロイしたコンピューターのディレクトリーにコピーします。このディレクトリーがオフラインの Maven ミラーリポジトリーになります。
  4. 「Maven 設定ファイルの修正」 の説明に従い、Red Hat Process Automation Manager デプロイメント向けに、settings.xml ファイルを作成して設定します。
  5. settings.xml ファイルで以下を変更します。

    • <profile> タグの下で、<repositories> または <pluginRepositores> タグがない場合には、必要に応じてこれらのタグを追加します。
    • <repositories> の下に、以下のシーケンスを追加します。

      <repository>
        <id>offline-repository</id>
        <url>file:///path/to/repo</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>

      /path/to/repo は、ローカルの Maven ミラーリポジトリーのディレクトリーに対する完全パスに置き換えます。

    • <pluginRepositories> の下に、以下のシーケンスを追加します。

      <repository>
        <id>offline-plugin-repository</id>
        <url>file:///path/to/repo</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>

      /path/to/repo は、ローカルの Maven ミラーリポジトリーのディレクトリーに対する完全パスに置き換えます。