スナップショットとリリースの両方をNexusにデプロイするためにMavenプロジェクトを構成する方法は?
<distributionManagement>
<repository>
<id>InternalReleases</id>
<name>Internal Releases</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/releases/</url>
</repository>
<repository>
<id>InternalSnapshots</id>
<name>Internal Snapshots</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/snapshots/</url>
</repository>
</distributionManagement>
この構成は、m2e 1.2を使用するEclipse 3.8でエラーを作成します
Project build error: Non-parseable POM D:\Workspaces\W\Parent\pom.xml: Duplicated tag: 'repository' (position: START_TAG
seen ...
Pomのバージョンに-SNAPSHOTの接尾辞が付いている場合、InternalSnapshotsリポジトリにデプロイされ、RELEASEの場合、InternalReleasesリポジトリにデプロイされているアーティファクトが必要です。これは、同じpom.xmlファイルを使用して、同じmvn deploy
コマンド。
リリースとスナップショットリポジトリを区別する必要があります。 <distributionManagement>
は1つだけ許可します<repository>
と1つの<snapshotRepository>
子。
Pom.xml構成の例
<!-- http://maven.Apache.org/pom.html#Distribution_Management -->
<distributionManagement>
<snapshotRepository>
<id>InternalSnapshots</id>
<name>Internal Snapshots</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>InternalReleases</id>
<name>Internal Releases</name>
<url>http://192.168.16.232:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
デフォルトのNexusインストール用の.m2/settings.xmlのスニペット
<server>
<id>thirdparty</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>InternalReleases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>InternalSnapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
両方を行うことができます。
Maven-release-plugin 2.5.3を追加します
以下を実行します。
mvn deploy clean:release release:prepare release:perform