ヘッダーをスキップ
Oracle® Fusion Middleware継続的インテグレーションによるアプリケーションの開発
12c (12.1.2)
E48004-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

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

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

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

5.1 Maven配布の設定

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

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

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

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

http://maven.apache.org

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

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

5.2 Maven設定のカスタマイズ

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

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

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

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つの共通構成の設定を示しています。

これらの用語に精通していない場合は、第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.1.2/oracle-maven-sync.12.1.2.pom
    
  • プラグインを含むJARファイル。次の場所にあります。

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

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

mvn install:install-file -DpomFile=oracle-maven-sync.12.1.2.pom -Dfile=oracle-maven-sync.12.1.2.jar

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

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

mvn deploy:deploy-file -DpomFile=oracle-maven-sync-12.1.2.pom -Dfile=oracle-maven-sync-12.1.2.jar
 -Durl=http://servername/archiva/repositories/internal -DrepositoryId=internal

このように、デプロイ・プラグインを使用するには、Mavenのsettings.xmlファイルでリポジトリを定義し、さらに匿名の公開が許可されていない場合には、資格証明を定義する必要があります。

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

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

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

Oracle Maven同期プラグインでは、次の2つのMavenゴールがサポートされています。

  • help: ヘルプ情報を出力します。

  • push: リポジトリへの移入に使用されます。

次のコマンドでhelpゴールを実行できます。

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

helpゴールの出力は、次のとおりです。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building odm 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- oracle-maven-sync:12.1.2:help (default-cli) @ odm ---
[INFO] ------------------------------------------------------------------------
[INFO] ORACLE MAVEN SYNCHRONIZATION PLUGIN - HELP
[INFO] ------------------------------------------------------------------------
[INFO] The following goals are available:
[INFO]
[INFO] help           prints this help
[INFO]
[INFO] push           Install to the local repository and optionally deploy
[INFO]                to a remote repository from the specified oracle home
[INFO]
[INFO]                The plugin will use your current Maven settings to
[INFO]                determine the path to the local repository and,
[INFO]                optionally, a remote deployment repository.  For
[INFO]                details on how to configure Maven's repository
[INFO]                settings, see the Maven settings reference:
[INFO]                http://maven.apache.org/settings.html
[INFO]    parameters:
[INFO]          oracle-maven-sync.oracleHome
[INFO]                - This is the path to the Oracle Home
[INFO]          oracle-maven-sync.testOnly
[INFO]                - Must be set to 'false' or no action will be taken
[INFO]                  Defaults to 'true'
[INFO]          oracle-maven-sync.failOnError
[INFO]                - If set to 'true' the plugin will stop and return an
[INFO]                  error immediately upon the first failure to deploy
[INFO]                  an artifact.  Otherwise, the plugin will log the
[INFO]                  error and attempt to complete deployment of all
[INFO]                  other artifacts.
[INFO]                  Defaults to 'false'
[INFO]          oracle-maven-sync.serverId [OPTIONAL]
[INFO]                - This is the ID of the server (repository) in
[INFO]                  your settings.xml file - where you have
[INFO]                  specified the remote Maven repository and its
[INFO]                  authentication information. The plugin will
[INFO]                  only install to the local repository if this
[INFO]                  parameter is not set.
[INFO]
[INFO]
[INFO] You can specify the parameters on the command line like this:
[INFO]   -Doracle-maven-sync.serverId=archiva-internal
[INFO]   -Doracle-maven-sync.testOnly=false
[INFO]   -Doracle-maven-sync.failOnError=false
[INFO]
[INFO] To override the localRepository target used by the plugin, you
[INFO] can specify the following option on the command-line:
[INFO]   -Dmaven.local.repo=/alternate/path/to/repository
[INFO]
[INFO] To supply an alternate settings.xml for purposes of this operation,
[INFO] use the --settings option.  For example:
[INFO]   mvn --settings /alternate/path/settings.xml ...
[INFO]
[INFO] ...or in your POM like this:
[INFO]   <plugin>
[INFO]     <groupId>com.oracle.maven</groupId>
[INFO]     <artifactId>oracle-maven-sync</artifactId>
[INFO]     <version>12.1.2</version>
[INFO]     <configuration>
[INFO]       <oracleHome>/home/mark/Oracle/Middleware</oracleHome>
[INFO]       <failOnError>false</failOnError>
[INFO]     </configuration>
[INFO]   </plugin>
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.689s
[INFO] Finished at: Day Month Year Time Year
[INFO] Final Memory: 3M/119M
[INFO] ------------------------------------------------------------------------

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

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

パラメータ 説明

serverId

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

oracleHome

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

testingOnly

これは、プラグインでリポジトリへのアーティファクトの公開を試行するかどうかを制御します。

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

failOnError

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

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


5.3.4 アーティファクトの置換に関する予備知識

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

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

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

5.3.5 Mavenリポジトリへの移入

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

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

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

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

次に例を示します。

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

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

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

次に例を示します。

mvn com.oracle.maven:oracle-maven-sync:push
 -Doracle-maven-sync.oracleHome=/path/to/oracleHome
 -Dmaven.repo.local=/alternate/path

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

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

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

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

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

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

次に例を示します。

mvn com.oracle.maven:oracle-maven-sync:push
 -Doracle-maven-sync.oracleHome=/path/to/oracleHome
 -Doracle-maven-sync.serverId=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.1.2</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 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.7 パッチ適用の予備知識

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

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

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

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

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

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

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

5.3.7.2 環境ごとに1つのMavenリポジトリを保持

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

5.3.7.3 パッチ適用後の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章および第12章で説明している、中心となる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.1.2.jar
  -DrepositoryId=archiva-releases
  -DpomFile=/path/to/oracle-maven-sync-12.1.2.pom
  -Durl=http://server:port/archiva/repository/internal