发布Nexus + Maven + Hudson的问题

时间:2010-08-17 17:22:10

标签: maven-2 hudson nexus maven-release-plugin

在Hudson(1.368)上使用Maven的发布插件时,我收到的错误是我的发行管理部分在部署到Nexus Maven Repository Manager的过程中丢失了。如果我在不使用发行版的情况下进行部署它就可以了,所以不应该对服务器,部分或设置进行错误配置。

值得注意的是,我的公司为Hudson使用不同的pom文件,并以不同的方式命名它们。还有各个项目目录中的settings.xml。这从来都不是问题,因为Hudson允许指定pom的名称以及要指定的设置文件的位置和名称。

我之所以注意到这一点的原因是,当将distributionManagement移动到常规pom.xml中时,它确实找到了它(但仍然无效,因为它缺少设置文件中的用户名和密码)。这使我感到困惑,因为对于发布过程的先前部分,它使用正确的pom和设置。它似乎在以后忘记了它们。这是怎么回事?

提前谢谢。

更新
似乎maven发布插件旋转了一个新的maven实例,它似乎是使用默认的pom.xml而不是我们不同命名的pom。需要进行更多测试。

2 个答案:

答案 0 :(得分:3)

答案(对于任何偶然发现这个问题的迷失的灵魂),maven确实正在推出一个没有使用正确的pom文件和设置的新进程。解决方案是在pom文件中添加一个部分,如下所示:

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.0</version>
    <configuration>
        <goals>-f POMFILE -s SETTINGSFILE deploy</goals>
    </configuration>
</plugin>

这将这两个文件指定给新的maven进程。

答案 1 :(得分:0)

  

如果我在不使用发行版的情况下进行部署它就可以了,所以不应该对服务器,部分或设置进行错误配置。

嗯,某处显然存在错误配置,无论是在哈德森级别。但是如果没有看到pom,设置,活动配置文件,发布期间使用的配置文件,Hudson设置等,就很难发现它。

第一步:尝试使用与Hudson完全相同的配置在命令行上重现问题。

第二步:使用Maven Help Plugin来理解和调试问题。更具体地说,有以下目标:

  

我注意到上述原因是当distributionManagement被移动到常规的pom.xml中时,它确实找到了它(但仍然无效,因为它缺少设置文件中的用户名和密码)。

如果在项目的distributionManagement之外(在公司环境中,它通常在公司pom.xml中进行,则不清楚指定pom.xml的位置,在这种情况下是这样吗?)。< / p>

目前还不清楚您是否实际为与username的存储库password匹配的服务器id提供了iddistributionManagement

但不知何故,这里使用了错误的组合。在发布/部署期间仔细检查哪些配置文件/设置处于活动状态,以便按照建议发现问题。

另见

  • Maven Deploy Plugin Usage页面