web-dev-qa-db-ja.com

スナップショットとリリースの両方をNexusにデプロイするためにMavenプロジェクトを構成する方法は?

スナップショットとリリースの両方を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コマンド。

22
Paul Verest

リリースとスナップショットリポジトリを区別する必要があります。 <distributionManagement>は1つだけ許可します<repository>と1つの<snapshotRepository> 子。

http://maven.Apache.org/pom.html#Distribution_Management

35
nabcos

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>  
26
Paul Verest

両方を行うことができます。

Maven-release-plugin 2.5.3を追加します

以下を実行します。

mvn deploy clean:release release:prepare release:perform

0
Scott Jones