我现在用的M2版本的插件从内部詹金斯这就要求行家释放小插件2.3.2内部和同时建立抛出这个错误: You don't have a SNAPSHOT project in the reactor projects list
。 问题是,我的项目劲歌也有自己的版本为1.0.0快照。 我在想什么?
com.abc.def
是company parent POM
,和我只是做了mvn release
的utils
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.abc</groupId>
<artifactId>def</artifactId>
<version>1.0.0</version>
</parent>
<groupId>com.abc.def</groupId>
<artifactId>utils</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>utils</name>
是的,我做我的基本谷歌+ SO拖网和无处不在它指向的是我的POM应该是具有快照版本,它已经存在。 除了我公司父POM不是快照。 莫非是什么原因呢?
我有同样的问题,但这些解决方案没有奏效。 本博客文章由托梅克Kaczanowski击中了要害。
原因往往是,詹金斯SVN策略设置为“使用svn更新尽可能多地”之间架起不清理编译工作区。
当你试图削减释放,詹金斯将更新您的POM,并创建一些临时文件。 如果发布失败,这些POM更新文件和临时文件都没有清理。 那么,当你解决POM,并试图重建,你会得到You don't have a SNAPSHOT project in the reactor projects list
错误,由于这些时髦的工作区文物混淆詹金斯。
解决的办法是改变你的詹金斯SVN策略。 以下任何方式应该工作:
- 经常检查出的全新副本
- 首先删除未版本控制/忽略的文件效仿干净的检出,那么“SVN更新”
- 更新之前,使用svn更新尽可能多地与“SVN恢复”
我也建议你明确你的工作空间詹金斯只是为了确保你开始新鲜。
主pom
并不需要是SNAPSHOT
,以及(在我的公司,我们有相同的设置,它的工作原理确定)。 这部分utils pom
是OK,据我所知道的,所以也许你错过了别的东西,像
<scm>
<developerConnection>scm:${release-scm}</developerConnection>
</scm>
当然还有maven release plugin
在您的构建定义部分POM
? (一个长镜头,我知道)
我有时发现与术语拼写问题:“快照”,基本上也将导致同样的错误。 喜欢:
1. SNAPSOT
2. SNASHOT
3. SHNAPSOT
;-)所以这是值得检查了这一点放在首位。
凉爽的固定是对父POM使用:
versions:set
其实Jenkis的工作区包含一些模块的旧的非快照版本。 尝试wipout工作区(=清洁和清除它),然后再做一个版本,他将得到后缀-SNAPSHOT的修正版本
我找到了原因:最新的公司父POM没有被拾起
- 我有
clean
和-U
无论是在mvn
参数列表。 不工作 - 然后我打扫
~/.m2
库。 不工作
什么是工作,在詹金斯
- 后藤的
Job config
页面 - 去
Build
,单击Advanced
- 检查框
Use private Maven repository
- 选择
Local to the workspace
。 Save
我知道这是那些奇怪的事情Maven有做某种原因的习惯之一。 和往常一样的错误并不翔实/直观不够。