web-dev-qa-db-de.com

Wie kann man maven project so konfigurieren, dass sowohl Snapshot als auch Releases für Nexus bereitgestellt werden?

Wie kann man maven project so konfigurieren, dass sowohl Snapshot als auch Releases für Nexus bereitgestellt werden?

<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>

Diese Konfiguration verursacht einen Fehler in Eclipse 3.8 mit m2e 1.2

Project build error: Non-parseable POM D:\Workspaces\W\Parent\pom.xml: Duplicated tag: 'repository' (position: START_TAG 
 seen ...

Ich möchte, dass das Artefakt im InternalSnapshots-Repository bereitgestellt wird, wenn die Pom-Version mit -SNAPSHOT versehen ist, und im InternalReleases-Repository bereitgestellt wird, wenn es RELEASE ist. Dies sollte geschehen, wenn dieselbe pom.xml-Datei verwendet wird und derselbe mvn deploy-Befehl ausgeführt wird.

20
Paul Verest

Sie müssen zwischen dem Repository für Releases und Momentaufnahmen unterscheiden. <distributionManagement> erlaubt nur einen <repository> und ein <snapshotRepository>-Kind.

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

32
nabcos

Beispiel für die Konfiguration von 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>

Ausschnitte für .m2/settings.xml für die Nexus-Standardinstallation

<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>  

23
Paul Verest

Sie können beides machen.

Fügen Sie das Maven-Release-Plugin 2.5.3 hinzu

Führen Sie folgendes aus:

mvn deploy clean: release release: vorbereiten der release: perform

0
Scott Jones