如何配置Maven项目以将快照和发布版本都部署到Nexus?

30

如何配置Maven项目将快照和发布版本都部署到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>

这个配置在使用Eclipse 3.8和m2e 1.2时会产生错误。

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命令来实现。

3个回答

44

1
配置文件允许我们使用不同的<distributionManagement>部分。如果你有多个<repository>和<snapshotRepository>,那么你可以通过使用不同的配置文件来实现它。 - P. Rower

29

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>  

0
你可以两者兼顾。
添加 maven-release-plugin 2.5.3
运行以下命令:
mvn deploy clean:release release:prepare release:perform

2
那很好,但它需要已经配置了Maven和项目,而这就是问题的关键:如何配置。 - Paul Verest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接