我正在使用 Jenkins 中的M2发布插件,该插件在内部调用 maven-release-plugin 2.3.2 ,同时构建抛出此错误: { {1}} 即可。问题是,我的项目poms 做的版本为1.0.0-SNAPSHOT。我错过了什么?
You don't have a SNAPSHOT project in the reactor projects list
是com.abc.def
,而我只针对company parent POM
的{{1}}
mvn release
是的,我已经完成了我的基本Google + SO拖网,并指出我的POM应该有SNAPSHOT作为版本,已经存在。除了我公司的父母POM不是快照。这可能是原因吗?
答案 0 :(得分:14)
我遇到了同样的问题,但这些解决方案无效。 This blog post by Tomek Kaczanowski击中了头部的钉子。
原因通常是Jenkins SVN策略设置为“尽可能使用svn update”,这不会清除构建之间的构建工作区。
当您尝试删除版本时,Jenkins将更新您的pom并创建一些临时文件。如果发布失败,则不会清除这些pom更新和临时文件。那么,当您修复pom并尝试重建时,由于这些时髦的工作区工件使Jenkins感到困惑,您会收到You don't have a SNAPSHOT project in the reactor projects list
错误。
解决方案是更改您的Jenkins SVN策略。以下任何一项都应该有效:
我还建议你清理你的Jenkins工作区,以确保你重新开始。
答案 1 :(得分:5)
主人pom
也不需要SNAPSHOT
(在我的公司,我们有相同的设置,并且工作正常)。据我所知,这部分utils pom
是可以的,所以也许你错过了其他的东西,比如
<scm>
<developerConnection>scm:${release-scm}</developerConnection>
</scm>
当然还有maven release plugin
中构建定义中的POM
部分?
(我知道的远射)
答案 2 :(得分:4)
我有时会发现拼写问题:“SNAPSHOT”,这基本上也会导致同样的错误。像:
1. SNAPSOT
2. SNASHOT
3. SHNAPSOT
;-)所以有必要提前检查一下。
酷的修复是在父pom上使用:
versions:set
答案 3 :(得分:3)
实际上,Jenkis的工作区包含一些模块的旧的非SNAPSHOT版本。尝试破坏工作区(=清理并清除它),然后再次发布,他将获得带有后缀-SNAPSHOT的修正版本
答案 4 :(得分:2)
我找到了原因:最新的公司家长POM没有被接收
clean
参数列表中都有-U
和mvn
。没用?~/.m2
存储库。没用?在Jenkins中有用的是什么
Job config
页面Build
,点击Advanced
Use private Maven repository
Local to the workspace
。 Save
我知道这是Maven因某种原因习惯做的奇怪事情之一。和往常一样,错误不足以提供信息/直观。