【发布时间】:2013-01-09 06:46:20
【问题描述】:
我的版本:
- Maven 3.0.4
- 詹金斯 1.499
- Nexus 2.2
- maven-release-plugin 3.2
- jdk 1.6
- AIX 6.1
settings.xml
<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 存储库。由于同一用户能够部署快照,我们可以消除 Nexus 中的用户角色/权限问题。 (我仍然为这个用户提供了管理员角色进行测试)
公司父 POM
<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>
项目 POM
<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>
现在,当我在 Jenkins 中使用 mvn release:perform 运行 maven 发布插件时,我仍然得到这个:
Deployment failed: repository element was not specified in the POM inside
distributionManagement element or in -DaltDeploymentRepository=id::layout
::url parameter
-
release:prepare没有显示错误 - 按预期创建 SVN 标签
- 然后在部署过程中,它失败并出现上述错误
- 正如我所提到的,快照部署经常发生并且没有错误,因此 settings.xml、distributionManagement 和 Nexus 权限似乎都井然有序。
- 我可以手动访问
http://myserver/repositories/releases - 我已与
mvn help:effective-pom和mvn help:effective-settings核对过,一切似乎都井井有条
有什么想法吗?
【问题讨论】:
-
您能否尝试使用发布版本和快照版本进行
mvn deploy。如果您得到相同的结果(仅在发布版本中失败),这会将错误定位到连接/权限/等,而不是release插件。 -
另外,您能否将
sudo作为运行它的用户进入您的 Jenkins 框并确认您有同样的问题(只是试图从表中消除因素)。另外,你能确认一下你修改的settings.xml文件真的被使用了吗,here's a question regarding this。 -
@SeanConnolly .. 谢谢 1.关于
[DEBUG] Reading global..的好消息,我检查了它的正确设置。 2. 不能 sudo - 无权访问该框 3. Mvn deploy 我将稍后尝试。 4. 我只是尝试为另一个 maven 项目运行相同的所有内容,然后猜猜是什么......它有效。因此,问题被缩小到单个多模块项目,这很可能意味着其中一个 POM 出现错误。 -
@SeanConnolly .. 归结为一个愚蠢的错误。一个用户弄乱了一个子 POM,Maven 像往常一样没有在日志中给出正确的错误。这意味着子 POM 没有到达公司父级,因此出现错误。 Maven 没有说哪个 POM 是问题,所以我假设项目,父级没问题,让我走错了方向。对不起,如果我浪费了你的时间
-
很高兴你解决了,干杯。
标签: maven jenkins nexus maven-release-plugin