How to configure maven project to deploy both snapshot and releases to Nexus?
Solution 1
You need to distinguish between the releases and snapshots repository. <distributionManagement>
only allows one <repository>
and one <snapshotRepository>
child.
http://maven.apache.org/pom.html#Distribution_Management
Solution 2
Example of pom.xml
configuration
<!-- 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>
Snippets for .m2/settings.xml
for default Nexus installation
<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>
Paul Verest
Java Developer, Architect, Team Leader; Agile Coach, Tech Manager Authoring Nodeclipse, Anide.js, Enide Organizing http://szjug.github.io/ Building up JVMs, Spring.io and Node.js User Groups (Java, Groovy, Scala, Android, JavaScript)
Updated on April 29, 2021Comments
-
Paul Verest about 3 years
How to configure maven project to deploy both snapshot and releases to Nexus?
<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>
This configuration creates error in Eclipse 3.8 with m2e 1.2
Project build error: Non-parseable POM D:\Workspaces\W\Parent\pom.xml: Duplicated tag: 'repository' (position: START_TAG seen ...
I want the artifact deployed to the InternalSnapshots repository when the pom's version is suffixed with -SNAPSHOT and deployed to the InternalReleases repository when it is RELEASE. This should happen using the same pom.xml file and executing the same
mvn deploy
command.