在Hudson(1.368)上使用Maven的发布插件时,我收到的错误是我的发行管理部分在部署到Nexus Maven Repository Manager的过程中丢失了。如果我在不使用发行版的情况下进行部署它就可以了,所以不应该对服务器,部分或设置进行错误配置。
值得注意的是,我的公司为Hudson使用不同的pom文件,并以不同的方式命名它们。还有各个项目目录中的settings.xml。这从来都不是问题,因为Hudson允许指定pom的名称以及要指定的设置文件的位置和名称。
我之所以注意到这一点的原因是,当将distributionManagement移动到常规pom.xml中时,它确实找到了它(但仍然无效,因为它缺少设置文件中的用户名和密码)。这使我感到困惑,因为对于发布过程的先前部分,它使用正确的pom和设置。它似乎在以后忘记了它们。这是怎么回事?
提前谢谢。
更新
似乎maven发布插件旋转了一个新的maven实例,它似乎是使用默认的pom.xml而不是我们不同命名的pom。需要进行更多测试。
答案 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
提供了id
和distributionManagement
。
但不知何故,这里使用了错误的组合。在发布/部署期间仔细检查哪些配置文件/设置处于活动状态,以便按照建议发现问题。