C.4. Fabric8 Maven プラグインのゴールの理解

Fabric8 Maven プラグインは、スムーズな Java 開発環境を提供するゴールのセットをサポートします。ゴールは以下のように分類できます。

  • ビルドゴール は、Docker 形式イメージや S2I ビルドなどの Kubernetes および OpenShift ビルドアーティファクトを作成および管理するために使用されます。
  • 開発ゴール は、リソース記述子を開発クラスターにデプロイするために使用されます。また、開発クラスターのライフサイクルを管理するのにも便利です。

C.4.1. ビルドおよび開発ゴールの理解

Red Hat Fabric Integration Services 製品の Fabric8 Maven プラグインによってサポートされるゴールは次のとおりです。

表C.1 ビルドゴール

ゴール説明

fabric8:build

ビルドイメージ。Fuse on OpenShift では、OpenShift s2i ビルドストラテジーのみがサポートされることに注意してください。docker ビルドストラテジーはサポートされません。

fabric8:resource

Kubernetes または OpenShift リソース記述子を作成します。

fabric8:apply

リソースを実行中のクラスターに適用します。

fabric8:resource-apply

fabric8:resourcefabric8:apply を実行します。

表C.2 開発ゴール

ゴール説明

fabric8:deploy

リソース記述子の作成後にクラスターへデプロイし、アプリケーションをビルドします。バックグラウンドで実行すること以外は fabric8:run と同じです。

fabric8:undeploy

クラスターからリソース記述子をアンデプロイおよび削除します。

fabric8:start

以前デプロイされたアプリケーションを開始します。

fabric8:stop

以前デプロイされたアプリケーションを停止します。

fabric8:log

実行中のアプリケーションのログを表示します。

fabric8:debug

リモートのデバッグを有効にします。

fabric8:watch

プロジェクトワークスペースで変更を監視し、アプリケーションの再デプロイメントを自動的にトリガーします。

C.4.2. 環境変数の設定

以下のように XML 設定に env パラメーターを追加して、1 つ以上の環境変数を設定できます。例を以下に示します。

<configuration>
  <resources>
    <env>
        <JAVA_OPTIONS>-Dmy.custom=option</JAVA_OPTIONS>
        <MY_VAR>value</MY_VAR>
    </env>
  </resources>
</configuration>

C.4.3. リソース検証設定

fabric8:resource ゴールは、Kubernetes および OpenShift の API 仕様を使用して、生成されたリソース記述子を検証します。

表C.3 リソース検証設定

設定説明デフォルト

fabric8.skipResourceValidation

値が true に設定されている場合、リソース検証はスキップされます。これは、何らかの理由でリソース検証に失敗してもデプロイメントを継続したい場合に便利です。

false

fabric8.failOnValidationError

値が true に設定されている場合、検証エラーによってプラグインの実行がブロックされます。true に設定されていない場合は警告が表示されます。

false

fabric8.build.switchToDeployment

値が true に設定され、OpenShift で ImageStreams を使用していない場合、fabric8-maven-plugin は DeploymentConfig ではなく Deployments に切り替わります。

false

fabric8.openshift.trimImageInContainerSpec

値が true に設定されている場合、コンテナーイメージ参照が "" に設定されます。これは、後続のロールアウトによって ImagePullErr が発生する OpenShift 3.7 での不適切な動作を処理するためのものです。

false

Fabric8 Maven プラグインゴールの詳細は https://maven.fabric8.io/#goals を参照してください。