Apache Maven プロジェクトとしてのアダプター

Maven プロジェクトを使用してアダプターの作成、デプロイ、テスト、および構成を行った場合、Maven のシンプルなプロジェクトのセットアップ、効率的な依存関係管理、および IntelliJ や Eclipse などのサポートされる IDE のメリットを享受できます。

Maven リポジトリー

MobileFirst アダプターをサポートする最新の Maven 成果物は、The Central Repository の GroupId com.ibm.mfp で入手可能です。 Maven プロジェクトを作成すると、 Maven は pom.xml ファイルをチェックして、どの依存関係をダウンロードするのかを特定します。

The Central Maven Repository へのオンライン・アクセスが組織で許可されていない場合は、MobileFirst 成果物を保持して共有するためのローカル・リポジトリーを管理者がセットアップする必要があります。 詳しくは、オフライン開発用の内部 Maven リポジトリーのセットアップを参照してください。

Java アダプター Maven プロジェクト

新規 Java™ アダプターを作成すると、以下の構造の Maven プロジェクトが生成されます。

図 1. Java アダプター Maven プロジェクト
この図は、通常の Java アダプターの構造を示します。
  • pom.xml: Maven Project Object Model (POM) ファイルはルート・フォルダー内にあります。 これには、MobileFirst によって開発されたアダプター成果物 adapter-maven-apiadapter-maven-plugin、および mfp-security-checks-base が含まれています。詳しくは、Maven アダプター成果物を参照してください。
  • adapter.xml: アダプター・ディスクリプター・ファイルは src/main/adapter-resources の下にあります。詳しくは、Java アダプター・ディスクリプター・ファイルを参照してください。
  • <package>: JAX-RS アプリケーションとそれによって必要とされるすべてのソース・ファイルを含む Java パッケージ。これらは src/main/java/ の下に置かれます。詳しくは、アダプターの JAX-RS サービスの実装を参照してください。

JavaScript アダプター Maven プロジェクト

新規 JavaScript アダプターを作成すると、以下の構造の Maven プロジェクトが生成されます。

図 2. JavaScript アダプター Maven プロジェクト
この図は、通常の JavaScript アダプターの構造を示します。
  • pom.xml: Maven Project Object Model (POM) ファイルはルート・フォルダー内にあります。 これには、MobileFirst によって開発されたアダプター成果物 adapter-maven-apiadapter-maven-plugin、および mfp-security-checks-base が含まれています。詳しくは、Maven アダプター成果物を参照してください。
  • adapter.xml: アダプター・ディスクリプター・ファイルは src/main/adapter-resources の下にあります。詳しくは、JavaScript アダプター・ディスクリプター・ファイルを参照してください。
  • <adapter-name>-impl.js: JavaScript ソース・ファイルを含みます。

Maven アダプター成果物

MobileFirst アダプターには以下の 3 つの主な成果物が含まれており、それらは pom.xml ファイル内で参照されます。

Maven アダプター API

adapter-maven-api は、アダプターの正しいコンパイルに必要な、MobileFirst コードとサード・パーティー依存関係を含みます。

Maven アダプター・プラグイン

adapter-maven-plugin は、アダプターをビルドしてデプロイするために使用される Maven プラグインです。アダプター構成のプルとプッシュにも使用されます。このプラグインは、pom.xml 内に次のように定義されます。

<plugin>
    <groupId>com.ibm.mfp</groupId>
    <artifactId>adapter-maven-plugin</artifactId>
    <version>8.0.0</version>
    <extensions>true</extensions>
</plugin>
プラグインには、builddeployconfigpull、および configpush という 4 つのゴールがあります。
  • build ゴールは、関連ファイルをプロジェクトから zip し、依存関係をアダプター・ファイルに追加することによって、 アダプター・ファイルを作成します。このゴールは、アダプター・ファイルを <adapter-name>.adapter という名前でターゲット・ディレクトリー内に作成します。 build ゴールは、Maven ライフサイクルのパッケージ化フェーズの一部として自動的に実行されます。

  • deploy ゴールは、アダプター・ファイルをサーバーにデプロイします。このゴールを使用する場合、pom.xml ファイル内の以下の値が正しいことを確認します。

    <properties>
        <!-- MobileFirst adapter deployment properties -->
        <mfpfUrl>http://localhost:9080/mfpadmin</mfpfUrl>
        <mfpfUser>admin</mfpfUser>
        <mfpfPassword>admin</mfpfPassword>
        <mfpfRuntime>mfp</mfpfRuntime>
    </properties>

    パラメーター mfpfUrl は、アダプターがデプロイされるサーバーの URL です。プロトコルとして HTTPS を使用している場合、サーバーへの接続は暗号化されます。パラメーター mfpfUsermfpfPassword は、管理サービスのユーザー名とパスワードです。パラメーター mfpfRuntime では、デプロイ先のターゲット・ランタイムを定義します。

    注: adapter-maven-plugindeploy ゴールは、サーバー証明書チェックおよびホスト名チェックをサポートしていません。これは開発環境でのみ使用してください。実動目的の場合、代わりに Ant デプロイヤーを使用してください。詳しくは、Ant を通じた MobileFirst アプリケーションの管理を参照してください。

    Maven を使用したアダプターのデプロイについて詳しくは、『JavaScript アダプターのデプロイ』および『Java アダプターのデプロイ』を参照してください。

  • configpull ゴールは、アダプターの構成を MobileFirst Server からプルし、 mfpfConfigFile パラメーターで指定されたファイルに書き込みます。MobileFirst Server でのアダプターの構成について詳しくは、アダプターの構成を参照してください。このゴールを実行するには、以下のいずれかを実行します。
    • pom.xml ファイル内に mfpfConfigFile パラメーターを設定して、出力ファイル名をポイントします。
    • コマンドで DmfpfConfigFile オプションを使用して、出力ファイル名を渡します。 例えば、以下のようになります。
      mvn adapter:configpull [-DmfpfConfigFile =<path to file>]
    結果は JSON オブジェクトです。
  • configpush ゴールは、mfpfConfigFile パラメーターに定義された名前のファイルからアダプター構成を MobileFirst Server にプッシュします。MobileFirst Server でのアダプターの構成について詳しくは、アダプターの構成を参照してください。このゴールを実行するには、以下のいずれかを実行します。
    • pom.xml ファイル内に mfpfConfigFile パラメーターを設定して、出力ファイル名をポイントします。
    • コマンドで DmfpfConfigFile オプションを使用して、出力ファイル名を渡します。 例えば、以下のようになります。
      mvn adapter:configpush [-DmfpfConfigFile=<path to file>]
    結果は JSON オブジェクトです。
カスタム・セキュリティー・ベース・クラス
mfp-security-checks-base 依存関係は、アダプターにカスタム・セキュリティー検査を実装することを可能にするベース・クラスを提供します。アダプターがカスタム・セキュリティー検査を使用しない場合、この依存関係を削除またはコメント化できます。
<dependency>
    <groupId>com.ibm.mfp</groupId>
    <artifactId>mfp-security-checks-base</artifactId>
    <version>8.0.0</version>
</dependency>

カスタム・セキュリティーの実装について詳しくは、セキュリティー検査の実装を参照してください。

サード・パーティー Maven 依存関係

Maven の依存関係メカニズムを使用して、任意の成果物をアダプターにパッケージします。 依存関係の使用の制限については、『アダプターおよびサード・パーティー依存関係』を参照してください。
注:
  • 成果物が Maven 成果物でない場合は、systemPath エレメントを使用して、それを依存関係として追加することができます。詳しくは、Introduction to the Dependency Mechanism を参照してください。
  • 依存関係をアダプターにパッケージせずに使用する場合は、provided スコープを使用します。