<server>
<id>snapshots</id>
<username>deploy</username>
<password>pass123</password>
</server>
<server>
<id>releases</id>
<username>deploy</username>
<password>pass123</password>
</server>
我在Jenkins中运行了很多使用maven deploy
插件并将工件上传到Nexus repo的构建版本。由于同一用户能够部署快照,因此我们可以消除Nexus中的用户角色/权限问题。 (我仍然为这个用户提供管理员角色进行测试)
<distributionManagement>
<repository>
<id>releases</id>
<url>http://myserver/repositories/releases</url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://myserver/repositories/snapshots</url>
<layout>default</layout>
</snapshotRepository>
</distributionManagement>
<scm>
<connection>scm:svn:http://svnserver/tags/1.2.3</connection>
<developerConnection>scm:svn:http://svnserver/tags/1.2.3</developerConnection>
</scm>
我已确认Jenkins工作区中的/target/checkout/
包含最新的POM。还在项目POM中添加了<distributionManagement>
现在,当我使用mvn release:perform
从Jenkins内部运行maven release插件时,我仍然得到这个:
Deployment failed: repository element was not specified in the POM inside
distributionManagement element or in -DaltDeploymentRepository=id::layout
::url parameter
release:prepare
显示没有错误http://myserver/repositories/releases
mvn help:effective-pom
和mvn help:effective-settings
进行了核对,事情似乎已经完成了有什么想法吗?
答案 0 :(得分:0)
错误消息非常明确。您的POM中没有分配管理。因此,您可能不会从父母pom中获取。
运行
mvn help:effective-pom
在您尝试部署和检查的项目中。或者在IDE中查看有效的POM(Eclipse或其他)。
然后找出要使用的正确父pom或可能根据需要插入distribtionManagement段。