Mavenは、コンパイル、パッケージ化、アーティファクト管理などのプロジェクト・ビルド・タスクの中心となるビルド管理ツールです。MavenはXMLベースの厳密なルール・セットを使用して、柔軟性を保持しながら整合性を促進します。Java中心の継続的インテグレーション・システムのほとんどがMavenと適切に統合されるため、基盤となるビルド・システムとして適切な選択といえます。この章では、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コピーをダウンロードして、インストールすることもできます。
Oracle Fusion Middlewareは、Maven 3.0.4以降をサポートしています。
インストール後、オペレーティング・システムの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.0.4 export PATH=${M2_HOME}/bin:$PATH
JAVA_HOME環境変数がJDKインストールを指すように設定する必要もあります。次に例を示します。
export JAVA_HOME=/u01/jdk1.7.0_21
Windowsの場合:
PATH環境変数を編集し、PATH環境変数の先頭にMavenへの正しいパスを追加します。
たとえば、c:\fmwhomeにWebLogic Serverをインストールしてある場合は、次のように追加する必要があります。
C:\fmwhome\oracle_common\modules\org.apache.maven_3.0.4\bin
また、JDKインストールを指し示すようにJAVA_HOME環境変数を設定する必要もあり、たとえば、export JAVA_HOME=/u01/jdk1.7.0_21のように設定します。
次のような場合は、Maven設定ファイルを作成する必要があります。
ファイアウォールまたはプロキシ・サーバーの背後で作業している場合
組織で専用の内部Mavenリポジトリ・マネージャを使用している場合
Maven設定ファイルはsettings.xmlと呼ばれ、通常はホーム・ディレクトリ内の.m2ディレクトリに保持されます。Mavenが他の場所を指し示すようにする場合は、Mavenマニュアルを参照してください。
Oracle WebLogic Serverインストールの一環として、またはMaven Webサイトからダウンロードして、初めて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マニュアルを参照してください。
たとえば第4章でArchivaを設定したように、Mavenリポジトリ・マネージャの構成が完了した後で、Oracleアーティファクトを移入したい場合があります。
そのために、Maven同期プラグインが提供されており、このプラグインを使用してOracleホームからローカルまたは共有Mavenリポジトリに移入できます。Fusion Middleware 12c製品をインストールしている場合、同期プラグインで検出できるように、Maven原型、プラグインおよびPOMが製品とともにインストールされます。
この章の内容は次のとおりです。
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プラグインが含まれています。
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
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ゴールのパラメータと説明
| パラメータ | 説明 |
|---|---|
|
|
Mavenの |
|
|
Mavenリポジトリへの移入元にするOracleホームへのパス。 |
|
|
これは、プラグインでリポジトリへのアーティファクトの公開を試行するかどうかを制御します。 これをデフォルト値の |
|
|
このプロパティを このプロパティを |
一部のMavenリポジトリ・マネージャには、リポジトリ内の既存アーティファクトの置換を可能にするかどうかを制御する設定があります。Mavenリポジトリ・マネージャにこのような設定がある場合は、Oracle Maven同期プラグインでリポジトリ内のアーティファクトを更新できるように、正しく設定されていることを確認する必要があります。この画面は、管理メニューで「Repositories」を選択してアクセスします。次に、「Edit」をクリックして、必要なリポジトリの設定を変更します。
Archivaを使用している場合は、「Managed Repository」設定の「Block Re-deployment of Released Artifacts」オプションの選択を解除する必要があります。
その他のMavenリポジトリ・マネージャにも同様の設定があります。別のツールを使用している場合は、そのツールのマニュアルを参照して、この設定の変更方法を確認してください。
リポジトリに移入するには、pushゴールを使用する必要があります。表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
リモート・リポジトリに移入する場合は、コマンドライン・インタフェースまたはプラグイン構成で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セクションに、暗号化されたパスワードを指定する必要があります。サーバー・パスワードの暗号化方法については、次を参照してください。
|
プロジェクト・オブジェクト・モデル・ファイルにパラメータを指定するには、プロジェクト・オブジェクト・モデル・ファイルに次のようなプラグイン・エントリを追加する必要があります。
<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
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クラス
appcやwlstなどのコンパイル、パッケージ化およびデプロイメント・ユーティリティ
アプリケーションへの組込みが必要なコンポーネントJAR
t3およびJAX-WSクライアント・ランタイムなどのクライアント側のランタイム・クラス
コンパイル、パッケージ化およびデプロイメントを処理するOracle提供のMavenプラグイン
プロジェクト・テンプレートを提供するOracle提供のMaven原型
パッチ適用は、システムを軽微な変更で更新する操作で、通常はソフトウェアが本番環境に移された後に認識された不具合を修正します。Oracle Fusion Middlewareでは、Oracleパッチ(OPatch)を使用して、Oracleホームにインストールされているソフトウェアへのパッチ適用を管理します。Oracleパッチを使用してパッチを適用しても、インストールされているソフトウェアのバージョン番号は変更されません。
Mavenでは、リリース済のソフトウェアが変更されないことを前提としたパッチ適用に対し、様々なアプローチを使用します。パッチが必要な場合、新しいバージョン番号を持つ新しいバージョンのアーティファクトが作成され、パッチとして配布されます。
Mavenを使用してOracle Fusion Middleware環境でアプリケーションを開発する場合には、この違いによって問題が発生します。Oracle Fusion Middleware 12.1.2では、この問題に対応するためのメカニズムを提供しています。
Oracle Fusion Middleware (12.1.2など)を本番環境にリリースした後で問題が見つかった場合、この問題を修正するための個別パッチが作成されます。たとえば、12.1.2と12.1.3などの2つのリリースの間にこのようなパッチが多くリリースされます。これらのパッチをすべて適用する、またはこれらのパッチのいずれも適用しないなど、多数のパッチの組合せを適用できます。
このアプローチでは高い柔軟性が提供されるため、必要なパッチのみを適用し、残りは無視することができます。ただし、Mavenを使用している場合には、問題が発生する可能性があります。ビルド・システムで使用しているアーティファクトのバージョンがターゲット環境で使用されているバージョンと正確に同じである(パッチ適用済の可能性もある)ことを確認してください。
テスト、QA、SIT、本番などの多数の環境が存在する場合には複雑さが増し、それぞれに異なるバージョン(またはパッチ)がインストールされる可能性が高くなります。
このような状況では、ターゲットにする環境ごとに1つのMavenリポジトリを設定することをお薦めします。たとえば、Mavenテスト・リポジトリには、テスト環境にインストールされているバージョンおよびパッチと一致するアーティファクトを格納し、Maven QAリポジトリには、QA環境にインストールされているバージョンおよびパッチと一致するアーティファクトを格納するというように設定します。
Oracle Maven同期プラグインのpushゴールを実行することによって、Mavenリポジトリに新しいMaven原型がインストールされる場合があります。原型の索引を再ビルドするためにコマンドの実行が必要になることがあります。一部のMavenリポジトリ・マネージャではこれを自動的に行います。
原型カタログを再ビルドするには、次のようなコマンドを実行します。
mvn archetype:crawl -Dcatalog=$HOME/.m2/archetype-catalog.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>
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