3

我的版本:

  • Maven 3.0.4
  • 詹金斯 1.499
  • 连结 2.2
  • maven-release-plugin 3.2
  • JDK 1.6
  • AIX 6.1

设置.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>

我已经确认/target/checkout/Jenkins 工作区中包含最新的 POM。还添加<distributionManagement>在项目 POM 中



现在,当我使用 mvn 从 Jenkins 中运行 maven 发布插件时,release:perform我仍然得到这个:

Deployment failed: repository element was not specified in the POM inside 
distributionManagement element or in -DaltDeploymentRepository=id::layout
::url parameter


  1. release:prepare显示没有错误
  2. SVN 标签按预期创建
  3. 然后在部署期间,它失败并出现上述错误
  4. 就像我提到的,快照部署经常发生并且没有错误,因此 settings.xml、distributionManagement 和 Nexus 权限似乎都井然有序。
  5. 我可以 http://myserver/repositories/releases手动访问
  6. 我已经检查过mvn help:effective-pom并且mvn help:effective-settings事情似乎井井有条

有任何想法吗 ?

4

1 回答 1

0

错误信息非常明确。您的 POM 中没有 distributionManagement。因此,您可能不会继承父 pom。

mvn help:effective-pom 

在您尝试部署和检查的项目中。或者查看 IDE(Eclipse 或其他)中的有效 POM。

然后找出正确的父 pom 使用或根据需要插入 distribtionManagement 段。

于 2015-08-31T18:31:03.723 回答