webentwicklung-frage-antwort-db.com.de

Geben Sie einen Schnappschuss mit maven 3.0.5 an nexus frei

Ich kann keine Momentaufnahme eines Artefakts freigeben, das ich mit Maven to Nexus erstellt habe. Die Version meines Artefakts lautet 1.0.0-SNAPSHOT.

Ich kann mvn clean install ohne ein Problem ausführen. Wenn ich jedoch versuche, mithilfe von mvn deploy bereitzustellen, erhalte ich die folgende Fehlermeldung:

Return code is: 400, ReasonPhrase: Repository version policy: RELEASE does not allow version: 1.0.0-20161019.214318-1. -> [Help 1]

Demnach konnte ich feststellen, dass maven3 den Zeitstempel anstelle des SNAPSHOT-Suffixes zu dem Artefakt hinzufügt, das ich bereitstellen möchte. Das <uniqueVersion>-Tag von maven wird in maven3 nicht unterstützt. Wie gehe ich vor, um diese Artefakte mithilfe des Befehls mvn deploy bereitzustellen.

Aktualisiert: Pom.xml

   <distributionManagement>
    <repository>
      <id>my-nexus-snapshots</id>
      <name>Internal Snapshot Releases</name>
      <url>http://localhost:9999/repository/maven-snapshots/</url>
    </repository>
    <snapshotRepository>
      <id>my-nexus-releases</id>
      <name>Internal Releases</name>
      <url>http://localhost:9999/repository/maven-releases/</url>
    </snapshotRepository>
  </distributionManagement>

einstellungen.xml

    <server>
        <id>my-nexus-snapshots</id>
        <username>user</username>
        <password>user123</password>
    </server>
    <server>
        <id>my-nexus-releases</id>
        <username>user</username>
        <password>user123</password>
    </server>
7
hYk

Normalerweise verfügt Ihr Nexus über separate Repositorys "Momentaufnahmen" und "Releases". SNAPSHOT-Versionen werden für die frühere Version, nicht für SNAPSHOT-Versionen für die letztere bereitgestellt. Für die Bereitstellung müssen diese Repositorys von Ihnen angegeben werden. Sie können dies tun, indem Sie dem Pom den Abschnitt distributionManagement hinzufügen. Dort können Sie spezifische Ziele für beide Ziele definieren.

<distributionManagement>
  <repository>
    <id>releases</id>
    <name>releases</name>
    <url>http://somerepo:8081/nexus/content/repositories/releases/</url>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name>snapshots</name>
    <url>http://somerepo:8081/nexus/content/repositories/snapshots/</url>
  </snapshotRepository>
</distributionManagement>
6
JF Meier

Wenn Sie Gradle verwenden, können Sie dies in den Repository-Einstellungen vornehmen.
Fügen Sie einfach die maven-Momentaufnahmen url hinzu

Zum Beispiel:

 repositories {
        maven {
            url = 'http://nexus.something.com/repository/maven-central/'
        }
        maven {
            url = 'http://nexus.something.com/repository/maven-releases/'
        }
        maven {
            url = 'http://nexus.something.com/repository/maven-snapshots/'
        }
    }
0
Dias