プライマリ・コンテンツに移動
Oracle® Fusion Middleware継続的統合によるアプリケーションの開発
12c (12.2.1)
E69943-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

5 ビルド自動化と依存性管理のためのMavenのインストールおよび構成

Mavenは、コンパイル、パッケージ化、アーティファクト管理などのプロジェクト・ビルド・タスクの中心となるビルド管理ツールです。MavenはXMLベースの厳密なルール・セットを使用して、柔軟性を保持しながら整合性を促進します。Java中心の継続的インテグレーション・システムのほとんどがMavenと適切に統合されるため、基盤となるビルド・システムとして適切な選択といえます。この章では、Mavenのインストールと構成方法について説明します。

この章の構成は、次のとおりです。

5.1 Maven配布の設定

Maven 3.2.5の配布はOracle Fusion Middlewareに含まれています。Oracle WebLogic Serverをインストールした後、Oracleホームの次の場所でMavenを見つけることができます。

ORACLE_HOME/oracle_common/modules/org.apache.maven_3.2.5

これは、Maven 3.2.5標準リリースの変更なしのコピーです。

Maven Webサイトから各自でMavenコピーをダウンロードして、インストールすることもできます。

http://maven.apache.org

Oracle Fusion Middlewareは、Maven 3.0.5以降をサポートしています。

インストール後、オペレーティング・システムのPATH環境変数にMavenを次のように追加します。

  • UNIXの場合:

    シェル起動スクリプト、.profileまたは.bash_profileを更新して、パスを更新する必要があります。

    たとえば、Oracle WebLogic Serverを/u01/fmwhomeにインストールしてbashシェルを使用している場合、PATH環境変数に次の内容を追加する必要があります。

    export M2_HOME=/u01/fmwhome/oracle_common/modules/org.apache.maven_3.2.5
    export PATH=${M2_HOME}/bin:$PATH
    

    JAVA_HOME環境変数がJDKインストールを指すように設定する必要もあります。次に例を示します。

    export JAVA_HOME=/u01/jdk1.7.0_45
    
  • Windowsの場合:

    PATH環境変数を編集し、PATH環境変数の先頭にMavenへの正しいパスを追加します。

    たとえば、c:\fmwhomeにWebLogic Serverをインストールしてある場合は、次のように追加する必要があります。

    C:\fmwhome\oracle_common\modules\org.apache.maven_3.2.5\bin
    

    JAVA_HOME環境変数がJDKインストールを指すように設定する必要もあります。

5.2 Maven設定のカスタマイズ

次のような場合は、Maven設定ファイルを作成する必要があります。

  • ファイアウォールまたはプロキシ・サーバーの背後で作業している場合

  • 組織で専用の内部Mavenリポジトリ・マネージャを使用している場合

  • Oracle Mavenリポジトリにアクセスする場合。

Oracle WebLogic Serverインストールの一環として、またはMaven Webサイトからダウンロードして、初めてMavenのインストールが完了したときには、設定ファイルはまだありません。

Maven設定ファイルsettings.xmlは、通常はホーム・ディレクトリ内の.m2ディレクトリに保持されます。Mavenが他の場所を指し示すようにする場合は、Mavenマニュアルを参照してください。

  • UNIXの場合:

    ユーザー名がbobの場合、ディレクトリ・パスは次のようになります。

    /home/bob/.m2/settings.xml
    
  • Windowsの場合:

    ユーザー名がbobの場合、ディレクトリ・パスは次のようになります。

    C:\Users\bob\.m2\settings.xml
    

Maven設定ファイルの例を次に示します。

<settings>
<proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.mycompany.com</host>
      <port>8080</port>
      <nonProxyHosts>mycompany.com</nonProxyHosts>
    </proxy>
  </proxies>
  <servers>
    <server>
      <id>maven.mycompany.com</id>
      <username>me@mycompany.com</username>
      <password>{COQLCE6DU6GtcS5P=}</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
      <id>archiva</id>
      <name>Internal Archiva Mirror of Central</name>
      <url>http://archiva.mycompany.com/repositories/internal</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

</settings>

この例では、使用する可能性がある3つの共通構成の設定を示しています。

  • Proxy: インターネット上のMavenリポジトリにアクセスするために必要なHTTPプロキシ・サーバーについて、Mavenと通信できます。

  • Servers: Mavenリポジトリの資格証明についてMavenと通信できるため、リポジトリにアクセスするたびにこれらを入力する必要がなくなります。

  • Mirrors: Mavenの中央リポジトリに対して直接アクセスを試みるかわりに、内部のMavenリポジトリ・マネージャをMavenの中央リポジトリのミラー(キャッシュ)として使用するようにMavenに通知します。

これらの用語に精通していない場合は、第1章の概要を参照してください。使用可能なMaven設定の詳細は、次の場所にあるMavenマニュアルを参照してください。

http://maven.apache.org/settings.html

5.3 Mavenリポジトリ・マネージャへの移入

たとえば第4章でArchivaを設定したように、Mavenリポジトリ・マネージャの構成が完了した後で、Oracleアーティファクトを移入します。

そのために、Maven同期プラグインが提供されており、このプラグインを使用してOracleホームからローカルまたは共有Mavenリポジトリに移入できます。Fusion Middleware 12c製品をインストールしている場合、同期プラグインで検出できるように、Maven原型、プラグインおよびPOMが製品とともにインストールされます。

この章の内容は次のとおりです。

5.3.1 Maven同期プラグインの概要

Oracle Fusion Middleware 12cにはMaven同期プラグインが用意されており、これによってリポジトリの設定プロセスが簡略化され、特定の環境にインストールされるパッチを認識しておく必要性が完全に排除されます。このプラグインを使用すると、指定のOracleホームからMavenリポジトリに移入できます。Oracleホームにパッチを適用した後、このプラグインを実行して、MavenリポジトリがOracleホームと一致するようにします。これにより、その特定の環境のすべてのアーティファクトについて、ビルドで正しいバージョンを使用していることが確実になります。

Oracle Maven同期プラグインは、Oracle WebLogic Server、Oracle CoherenceおよびOracle JDeveloperのインストールに含まれています。プラグインを使用するには、Oracleホームの場所とMavenリポジトリの場所を指定する必要があります。Mavenリポジトリは、ファイル・システムのパスまたはURLのいずれかを使用して指定できます。プラグインはOracleホーム内のすべてのMavenアーティファクトを調べて、すべてのアーティファクトが指定したMavenリポジトリにインストールされていること、およびバージョンが完全に一致していることを確認します。これは、バージョン番号とファイルがバイナリ・レベルで完全に同一であることを意味し、すべてのパッチ適用済ファイルがMavenリポジトリ内に正確に反映されます。

12cのOracleホームにはmavenディレクトリがあり、ここには様々なビルド操作を実行するための、Oracle提供アーティファクト用のMavenプロジェクト・オブジェクト・モデル(POM)、プロジェクトを作成するための原型、およびOracle提供のMavenプラグインが含まれています。

5.3.2 Oracle Maven同期プラグインのインストール

Oracle Maven同期プラグインの使用を開始する前に、これをMavenリポジトリにインストールする必要があります。コンピュータ上のローカル・リポジトリにインストールするか、共有内部リポジトリがある場合は、ここにデプロイします。

プラグインはOracle WebLogic Server 12cホームにあり、2つのファイルで構成されています。

  • プラグインについて記述するMavenプロジェクト・オブジェクト・モデル(POM)ファイル。次の場所にあります。

    ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.2.1/oracle-maven-sync-12.2.1.pom
    
  • プラグインを含むJARファイル。次の場所にあります。

    ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.2.1/oracle-maven-sync-12.2.1.jar
    

プラグインをインストールおよびデプロイするには、次の手順を実行します。

  1. ローカルMavenリポジトリにプラグインをインストールするには、ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.2.1ディレクトリから次のコマンドを実行します。

    mvn install:install-file -DpomFile=oracle-maven-sync-12.2.1.pom -Dfile=oracle-maven-sync-12.2.1.jar
    
  2. プラグインをデプロイするには、次の方法のいずれかを使用します。

    • 共有内部リポジトリにプラグインをデプロイする最も簡単な方法として、Mavenリポジトリ・マネージャによって提供されるWebユーザー・インタフェースを使用して、リポジトリにJARファイルをアップロードします。

    • 代替方法としては、デプロイ・プラグインを使用しますが、これは、ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.2.1ディレクトリから次のようなコマンドを使用することで実行できます。

      mvn deploy:deploy-file -DpomFile=oracle-maven-sync-12.2.1.pom -Dfile=oracle-maven-sync-12.2.1.jar
       -Durl=http://servername/archiva/repositories/internal -DrepositoryId=internal
      
  3. このように、デプロイ・プラグインを使用するには、Mavenのsettings.xmlファイルでリポジトリを定義し、さらに匿名の公開が許可されていない場合には、資格証明を定義する必要があります。

    このコマンドの詳細は、次の場所にあるMavenマニュアルを参照してください。

    http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

使用する際に完全座標を指定しなくて済むようにOracle Maven Synchronizationプラグインに短い名前を使用するには、Mavenのsettings.xmlに次のようにエントリを追加します。

<pluginGroups>
    <pluginGroup>com.oracle.maven</pluginGroup>
     ...
</pluginGroups>

これにより、oracle-syncという名前を使用してプラグインを参照できます。

5.3.3 Oracle Maven同期プラグインの実行

Oracle Maven同期プラグインは、リポジトリに移入するために使用する単一pushゴールをサポートします。

使用方法およびパラメータの説明を取得するには、次のコマンドを実行してhelp:describeゴールを呼び出すことができます。

mvn help:describe -Dplugin=com.oracle.maven:oracle-maven-sync -Ddetail

この出力には、プラグインのpushゴールで使用可能なパラメータが示されています。表5-1に、パラメータを示します。

表5-1 pushゴールのパラメータと説明

パラメータ 説明

serverId

Mavenのsettings.xmlファイルに含まれるサーバー・エントリへのポインタ。これは、リモート・リポジトリにデプロイする場合にのみ必要です。settings.xmlでは、URL、ユーザー名、パスワードなどのリモート・アーティファクト・リポジトリのデプロイメント情報を提供する必要があります。

oracleHome

Mavenリポジトリへの移入元にするOracleホームへのパス。

testingOnly

プラグインでリポジトリへのアーティファクトの公開を試行するかどうかを制御するパラメータ。

これをデフォルト値のtrueに設定すると、pushゴールによってすべてのPOMファイルが検索され、falseに設定されている場合に実行される内容の詳細が出力されます。ただし、アーティファクトは公開されず、システムも変更されません。

failOnError

このプロパティをfalseに設定すると、プラグインで1つのリソースの処理に失敗しても、それ以外のすべてのリソースの処理が続行されます。失敗は警告としてログに記録されますが、処理は正常に完了します。

このプロパティをtrueに設定すると、最初の問題が発生するとすぐにプラグインがエラーで終了します。これがデフォルトです。

overwriteParent

このプロパティをtrueに設定すると、oracle-commonの祖先がターゲット・リポジトリに存在していれば、プラグインはoracle-commonの祖先でPOMアーティファクトを上書きします。デフォルト値のfalseはカスタマイズPOMコンテンツが自動的に上書きされることを防ぎます。プラグイン実行中にそのようなPOMに遭遇した場合、failOnErrorフラグ値に応じてエラーが発生し処理されます。変更を持ち越すには、既存のPOMを保存し、overwriteParent=trueでpushゴールを実行して、新しくプッシュされたPOMに手動で変更を転送します。

pushDuplicates

このプロパティをtrueに設定すると、プラグインは重複した場所をすべてプッシュします。つまり、別々のMaven座標(GAV)を持つ複数のPOMが同じ場所のパスに割り当てられている場合、プラグインはそれらすべてを宛先リポジトリにプッシュします。


5.3.4 アーティファクトの置換について

一部のMavenリポジトリ・マネージャには、リポジトリ内の既存アーティファクトの置換を可能にするかどうかを制御する設定があります。Mavenリポジトリ・マネージャにこのような設定がある場合は、Oracle Maven同期プラグインでリポジトリ内のアーティファクトを更新できるように、正しく設定されていることを確認する必要があります。

Archivaの場合:

  1. 「管理」メニューから、「リポジトリ」を選択します。

  2. 次に、「Edit」をクリックして、必要なリポジトリの設定を変更します。

    Archivaを使用している場合は、「Managed Repository」設定の「Block Re-deployment of Released Artifacts」オプションの選択を解除する必要があります。

その他のMavenリポジトリ・マネージャにも同様の設定があります。別のツールを使用している場合は、そのツールのマニュアルを参照して、この設定の変更方法を確認してください。

5.3.5 Mavenリポジトリへの移入

リポジトリに移入するには、pushゴールを使用する必要があります。表5-1に示すパラメータをコマンドラインまたはプロジェクト・オブジェクト・モデル・ファイルで指定します。

この章の内容は次のとおりです。

5.3.5.1 pushゴールの実行について

pushゴールを実行すると、次の処理が行われます。

  • 指定されたOracleホームを確認し、そのOracleホームに含まれるすべてのMavenアーティファクトの一覧を作成します。これは、ORACLE_HOME/oracle_common/plugins/maven依存性ディレクトリおよびそのサブディレクト内でプロジェクト・オブジェクト・モデル・ファイルを再帰的に検索し、ORACLE_HOMEに存在するPRODUCT_HOMEごとにORACLE_HOME/PRODUCT_HOME/plugins/mavenディレクトリおよびそのサブディレクトリ内を再帰的に検索することで実行します。

  • 各プロジェクト・オブジェクト・モデル・ファイルで参照されているJARファイルがOracleホームで使用可能かどうかを確認します。

  • JARファイルのSHA1チェックサムを計算します。

  • 指定されたリポジトリに対するJARファイル、プロジェクト・オブジェクト・モデル・ファイルおよびSHA1ファイルの公開を試行します。

次のタイプのMavenアーティファクトがリポジトリにインストールされます。

  • Oracleによって提供されている次のようなMavenの依存性

    • クライアントAPIクラス

    • appcwlstなどのコンパイル、パッケージ化およびデプロイメント・ユーティリティ

    • アプリケーションへの組込みが必要なコンポーネントJAR

    • t3およびJAX-WSクライアント・ランタイムなどのクライアント側のランタイム・クラス

  • コンパイル、パッケージ化およびデプロイメントを処理するOracle提供のMavenプラグイン

  • プロジェクト・テンプレートを提供するOracle提供のMaven原型

5.3.5.2 ローカル・リポジトリへの移入

ローカル・リポジトリに移入する場合は、oracleHomeおよびtestingOnly=falseを指定するだけです。

次に例を示します。

mvn com.oracle.maven:oracle-maven-sync:push
 -Doracle-maven-sync.oracleHome=/path/to/oracleHome
 -DtestingOnly=false

settings.xmlファイルのlocalRepository要素は、ローカルMavenリポジトリの場所を示します。settings.xmlからlocalRepository要素を取り除くと、デフォルトの場所は${HOME}/.m2/repositoryディレクトリ内になります。

localRepository値をオーバーライドする場合は、Mavenオプションとしてコマンドラインにオーバーライドの場所を指定する必要があります。

次に例を示します。

mvn com.oracle.maven:oracle-maven-sync:push
 -DoracleHome=/path/to/oracleHome
 -Dmaven.repo.local=/alter/nate/path

プロジェクト・オブジェクト・モデル・ファイルのパラメータを指定するには、次のようなプラグイン・エントリを追加する必要があります。

<plugin>
  <groupId>com.oracle.maven</groupId>
  <artifactId>oracle-maven-sync</artifactId>
  <version>12.2.1-0-0</version>
  <configuration>
    <oracleHome>/path/to/oracleHome</oracleHome>
    <testOnly>false</testOnly>
  </configuration>
</plugin>

プラグインを追加した後、次のコマンドを実行してMavenを実行します。

mvn com.oracle.maven:oracle-maven-sync:push

5.3.5.3 リモート・リポジトリへの移入

リモート・リポジトリに移入する場合は、コマンドライン・インタフェースまたはプラグイン構成でserverIdおよびoracleHomeを指定する必要があります。また、プラグインに指定したserverIdと一致するようにsettings.xmlファイルのリポジトリ構成を指定する必要があります。デプロイメントに認証が必要な場合は、Mavenのsettings.xmlファイルにもサーバー・エントリを追加する必要があります。

次に例を示します。

mvn com.oracle.maven:oracle-maven-sync:push 
 -DoracleHome=/path/to/oracleHome 
 -DserverId=internal

これに対応する認証詳細付きのMavenのsettings.xmlファイルは、次のようになります。

...
<profiles>
  <profile>
    <id>default</id>
<repositories>
  <repository>
    <releases>
      <enabled>true</enabled>
      <updatePolicy>always</updatePolicy>
      <checksumPolicy>warn</checksumPolicy>
    </releases>
    <snapshots>
      <enabled>true</enabled>
      <updatePolicy>never</updatePolicy>
      <checksumPolicy>fail</checksumPolicy>
    </snapshots>
    <id>internal</id>
    <name>Team Internal Repository</name>
    <url>http://some.host/maven/repo/internal</url>
    <layout>default</layout>
  </repository>
</repositories>
</profile>
</profiles>
...
<server>
    <id>internal</id>
    <username>deployer</username>
    <password>welcome1</password>
  </server>
...
<activeProfiles>
  <activeProfile>default</activeProfile>
</activeProfiles>

プロファイルにターゲット・リポジトリを定義し、前述の例に示すactiveProfilesタグを使用して、そのプロファイルをアクティブ化する必要があります。


注意:

serverセクションに、暗号化されたパスワードを指定する必要があります。サーバー・パスワードの暗号化方法については、次を参照してください。

http://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords


プロジェクト・オブジェクト・モデル・ファイルのパラメータを指定するには、次のようなプラグイン・エントリを追加する必要があります。

<plugin>
  <groupId>com.oracle.maven</groupId>
  <artifactId>oracle-maven-sync</artifactId>
  <version>12.2.1-0-0</version>
  <configuration>
    <serverId>internal</serverId>
    <oracleHome>/path/to/oracleHome</oracleHome>
    <testOnly>false</testOnly>
  </configuration>
</plugin>

プラグインを追加した後、次のコマンドを実行してMavenを実行します。

mvn com.oracle.maven:oracle-maven-sync:push

リポジトリに移入した後、リポジトリ・マネージャ上で索引の更新または原型カタログの更新などのいくつかの操作を実行することもできます。そのような操作が必要または推奨されているかを確認するには、リポジトリ・マネージャのドキュメントを参照してください。

5.3.6 既存MavenリポジトリでのPushゴールの実行

すでにOracleアーティファクトが入っているMavenリポジトリに対してpushゴールを実行すると、Oracle Maven同期プラグインはリポジトリに既存の親POMがあることを検出します。独自の設定を追加するなど変更されている場合があるため、このような親POMは上書きされません。かわりに、警告メッセージが出力されます。親POMを上書きするには、pushゴールに追加パラメータ-DoverriteParents=trueを指定する必要があります。

5.3.7 パッチ適用の予備知識

パッチ適用は、システムを軽微な変更で更新する操作で、通常はソフトウェアが本番環境に移された後に認識された不具合を修正します。Oracle Fusion Middlewareでは、Oracleパッチ(OPatch)を使用して、Oracleホームにインストールされているソフトウェアへのパッチ適用を管理します。Oracleパッチを使用してパッチを適用しても、インストールされているソフトウェアのバージョン番号は変更されません。

Mavenでは、リリース済のソフトウェアが変更されないことを前提としたパッチ適用に対し、様々なアプローチを使用します。パッチが必要な場合、新しいバージョン番号を持つ新しいバージョンのアーティファクトが作成され、パッチとして配布されます。

Mavenを使用してOracle Fusion Middleware環境でアプリケーションを開発する場合には、この違いによって問題が発生します。Oracle Fusion Middleware では、この問題に対応するためのメカニズムを提供しています。

5.3.7.1 パッチ適用に対するOracleのアプローチ

Oracle Fusion Middleware (12.2.1など)を本番環境にリリースした後で問題が見つかった場合、この問題を修正するための個別パッチが作成されます。たとえば、12.2.1と12.2.1などの2つのリリースの間にこのようなパッチが多くリリースされます。これらのパッチをすべて適用する、またはこれらのパッチのいずれも適用しないなど、多数のパッチの組合せを適用できます。

このアプローチでは高い柔軟性が提供されるため、必要なパッチのみを適用し、残りは無視することができます。ただし、Mavenを使用している場合には、問題が発生する可能性があります。ビルド・システムで使用しているアーティファクトのバージョンがターゲット環境で使用されているバージョンと正確に同じである(パッチ適用済の可能性もある)ことを確認してください。

テスト、QA、SIT、本番などの多数の環境が存在する場合には複雑さが増し、それぞれに異なるバージョン(またはパッチ)がインストールされる可能性が高くなります。

このような状況では、ターゲットにする環境ごとに1つのMavenリポジトリを設定することをお薦めします。たとえば、Mavenテスト・リポジトリには、テスト環境にインストールされているバージョンおよびパッチと一致するアーティファクトを格納し、Maven QAリポジトリには、QA環境にインストールされているバージョンおよびパッチと一致するアーティファクトを格納するというように設定します。

5.3.7.2 パッチ適用後のOracle Maven同期プラグインのpushゴールの実行

Oracleホームにパッチを適用した後、このプラグインを実行して、MavenリポジトリがOracleホームと一致するようにします。これにより、その特定の環境のすべてのアーティファクトについて、ビルドで正しいバージョンを使用していることになります。

5.3.8 原型カタログに関する考慮事項

Oracle Maven同期プラグインのpushゴールを実行することによって、Mavenリポジトリに新しいMaven原型がインストールされる場合があります。原型の索引を再ビルドするためにコマンドの実行が必要になることがあります。一部のMavenリポジトリ・マネージャではこれを自動的に行います。

ローカル原型カタログを再ビルドするには、次のようなコマンドを実行します。

mvn archetype:crawl -Dcatalog=$HOME/.m2/archetype-catalog.xml

5.3.9 settings.xmlファイルの例

このsettings.xmlファイルの例には、このマニュアルに記載されている継続的インテグレーション・システムの残りの部分とMavenとを統合するためのテンプレートが示されています。第4章および第16章で説明している、中心となるArchivaリポジトリのインタラクションとHudsonの継続的インテグレーション・サーバーの統合をサポートする構成が示されています。各自のシステムの値と一致するように、URL、パスワードなどの値を変更する必要があります。

<settings>
  <profiles>
    <profile>
       <id>default</id>
        <repositories>
          <repository>
            <id>dev-group</id>
            <name>Dev Group</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/dev-group</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>dev</id>
            <name>Dev</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/dev</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>prod-group</id>
            <name>Prod Group</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/prod-group</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>prod</id>
            <name>Prod</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/prod</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>qa-group</id>
            <name>QA Group</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/qa-group</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>qa</id>
            <name>QA</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/qa</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>test-group</id>
            <name>Test Group</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/test-group</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>test</id>
            <name>Test</name>
            <releases>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>false</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/test</url>
            <layout>default</layout>
          </repository>
          <repository>
            <id>archiva-snapshots</id>
            <name>Archiva Snapshots</name>
            <releases>
              <enabled>false</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
              <enabled>true</enabled>
              <updatePolicy>never</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <url>http://SERVER:PORT/archiva/repository/snapshots</url>
            <layout>default</layout>
          </repository>
        </repositories>
      </profile>
    </profiles>
  <servers>
    <server>
      <id>dev</id>
      <username>hudson</username>
      <password>PASSWORD</password>
    </server>
    <server>
      <id>dev-group</id>
      <username>hudson</username>
      <password>PASSWORD</password>
    </server>
    <server>
      <id>archiva-snapshots</id>
      <username>hudson</username>
      <password>PASSWORD</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
      <id>dev-mirror</id>
      <name>All else</name>
      <url>http://SERVER:PORT/archiva/repository/dev-group</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  <activeProfiles>
    <activeProfile>default</activeProfile>
  </activeProfiles>
</settings>

5.3.10 単一アーティファクトのデプロイ

Mavenのデプロイ・プラグインを使用して、リモート・アーティファクト・リポジトリにアーティファクトおよびプロジェクト・オブジェクト・モデルをデプロイすることもできます。

たとえば、settings.xmlファイルの例にある定義に従ってarchiva-releasesリポジトリにデプロイするには、次のコマンドを実行します。

mvn deploy:deploy-file
  -Dfile=/path/to/oracle-maven-sync-12.2.1.jar
  -DrepositoryId=archiva-releases
  -DpomFile=/path/to/oracle-maven-sync-12.2.1.pom
  -Durl=http://server:port/archiva/repository/internal