第8章 プロジェクトでの Maven 依存関係の設定

外部の Maven リポジトリーを使用してプロジェクトをデプロイすることができます。プロジェクトの作成時には、Business Central は、Business Central 用に設定された Maven リポジトリーを使用します。以下のファイルを変更することで、Maven グローバルまたはユーザー設定を使用して、すべての Red Hat Decision Manager プロジェクトに対して Red Hat Decision Manager の公開リポジトリーから依存関係を取得するように指示できます。

  • Maven settings.xml ファイル
  • Maven プロジェクトオブジェクトモデル (POM) ファイル (pom.xml)

詳細は『Red Hat Decision Manager プロジェクトのパッケージ化およびデプロイ』を参照してください。

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

Maven を使用して Red Hat Decision 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」を参照してください。

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

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

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

手順

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

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

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

8.3. Maven POM ファイルの修正

ご自分の Red Hat Decision 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 Decision 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.4.0.GA-redhat-00002</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 Decision Manager プロジェクトでは、使用する機能に応じて、以下の依存関係を宣言します。
    • 標準的な Red Hat Decision 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>

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

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

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

    • Red Hat Decision 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 Decision 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>