Maven entfaltet sich zu Snapshot statt Release
Ich versuche zu release ein Projekt mithilfe von maven, aber anstatt die Freigabe der Releases-repository, wird es in unserer Snapshots-repo.
Meine pom sieht wie folgt aus:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.my.profiler</groupId>
<artifactId>profilerlib</artifactId>
<name>Profiler Lib</name>
<version>1.0.2-SNAPSHOT</version>
<description>Profiler Library</description>
<scm>
<connection>scm:svn:https://svn.example.com/my-project/profilerlib/trunk
</connection>
<developerConnection>scm:svn:https://svn.example.com/my-project/profilerlib/trunk
</developerConnection>
</scm>
<distributionManagement>
<!-- Publish the versioned releases here -->
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://repo.example.com:8081/nexus/content/repositories/releases
</url>
</repository>
<!-- Publish the versioned releases here -->
<snapshotRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://repo.example.com:8081/nexus/content/repositories/snapshots
</url>
</snapshotRepository>
</distributionManagement>
<!-- download artifacts from this repo -->
<repositories>
<repository>
<id>nexus</id>
<name>EXAMPLE Public Repository</name>
<url>http://repo.example.com:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
...
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagBase>https://svn.example.com/my-project/profilerlib/tags
</tagBase>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<powermock.version>1.4.6</powermock.version>
</properties>
</project>
InformationsquelleAutor der Frage Leon Roy | 2011-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist das problem, Sie verwenden die gleiche id für die drei verschiedenen repositories. Maven verwaltet diese repositories von ID, so dass jeder ID muss eindeutig sein! E. g. verwenden Sie "nexus-releases", "nexus-snapshots" und "nexus".
InformationsquelleAutor der Antwort Sean Patrick Floyd
Falls jemand anderes dieses problem und finden Sie die vorhandenen Antworten lösen nicht Ihre Probleme:
Gab es eine Handvoll bugs, die bedeuten, dass
release:prepare
nicht verpflichten, um das git-repository vor dem erstellen der release-tag. Dies bedeutet, dass die Versionsnummer in den pom-Dateien, dierelease:perform
findet, enthält-SNAPSHOT
und der deployer wird versuchen, die Freigabe an das snapshot-repository.Hier ist der aktuelle Mangel verantwortlich für dieses Verhalten: MRELEASE-875 (wirkt 2.5, fest in 2.5.1)
InformationsquelleAutor der Antwort Ken
Dem POM-zeigt die Versionsnummer, um eine SNAPSHOT-version. Also, wenn Sie lief
mvn deploy
mit dem POM in diesem Zustand, wäre es natürlich deploy einen snapshot (snapshots repository.Tun, eine Version, die Sie verwenden müssen, um die Ziele der release plugin.
Auf der anderen Seite, vielleicht haben Sie dies bereits wissen, und die wirkliche Antwort ist in Sean Patrick Floyd ' s Antwort.
InformationsquelleAutor der Antwort Stephen C
Fiel foul von dieses problem mit einer anderen Ursache... stellen Sie sicher, dass das release-plugin ist Check-out ein tag, und nicht ein Zweig mit dem selben Namen!
Ich fiel foul von dieser... erstellte ich einen Zweig namens "1.9.0", in dem mein release, und dann lief mvn release:prepare, die auch eine "1.9.0" - tag. Wenn mvn release:perform lief es hat ein git checkout "1.9.0, und am Ende hob den KOPF von der 1.9.0 Filiale, die hatten natürlich eine MOMENTAUFNAHME in (1.10-SNAPSHOT).
Dass die zwei Stunden meines Lebens die ich nicht zurück bekommen... In Zukunft werde ich das hinzufügen eines "-release" - suffix zu dem branch-Namen (beispielsweise "1.9.0-release").
InformationsquelleAutor der Antwort Dan Haywood
Falls die Probleme weiterhin bestehen, sind Sie wahrscheinlich mit der version von maven-release-plugin geben Sie in der parent pom. Die Angabe 2.2.2 des maven-release-plugin definitiv schlägt fehl, und nur deploy einen snapshot (unter bestimmten Bedingungen noch nicht vollständig erklärt). Die neueste plugin (ie. entfernen Sie das tag aus der pom.xml) jedoch funktioniert.
InformationsquelleAutor der Antwort PGP