[英]Maven release plugin - SNAPSHOT project needed
我正在使用Jenkins内部的M2发布插件,它在内部调用maven-release-plugin 2.3.2 ,同时构建抛出此错误: You don't have a SNAPSHOT project in the reactor projects list
。 问题是,我的项目劲歌也有自己的版本为1.0.0快照。 我错过了什么?
com.abc.def
是company parent POM
,我正在为utils
mvn release
做
<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>
是的,我已经完成了我的基本Google + SO拖网,并指出我的POM应该有SNAPSHOT作为版本,它已经存在。 除了我公司的父母POM不是快照。 这可能是原因吗?
我有同样的问题,但这些解决方案不起作用。 这篇由Tomek Kaczanowski撰写的博客文章在头上打了一针 。
原因通常是Jenkins SVN策略设置为“尽可能使用svn update”,这不会清除构建之间的构建工作区。
当您尝试删除版本时,Jenkins将更新您的pom并创建一些临时文件。 如果发布失败,则不会清除这些pom更新和临时文件。 那么,当你修复pom并尝试重建时,你会得到You don't have a SNAPSHOT project in the reactor projects list
错误,因为这些时髦的工作区工件让Jenkins感到困惑。
解决方案是更改您的Jenkins SVN策略。 以下任何一项都应该有效:
我还建议您清理Jenkins工作区,以确保您重新开始。
Master pom
也不需要SNAPSHOT
(在我的公司,我们有相同的设置,它工作正常)。 就我所知,这部分的utils pom
是可以的,所以也许你错过了别的东西,比如
<scm>
<developerConnection>scm:${release-scm}</developerConnection>
</scm>
当然还有POM
中构建定义中的maven release plugin
部分? (我知道的远射)
我有时会发现拼写问题:“SNAPSHOT”,这基本上也会导致同样的错误。 喜欢:
1. SNAPSOT
2. SNASHOT
3. SHNAPSOT
;-)所以有必要提前检查一下。
很酷的修复是在父pom上使用:
versions:set
实际上,Jenkis的工作区包含一些模块的旧的非SNAPSHOT版本。 尝试破坏工作区(=清理并清除它),然后再次发布,他将获得带有后缀-SNAPSHOT的修正版本
我找到了原因:最新的公司家长POM没有被接收
mvn
参数列表中都clean
-U
。 不工作 ~/.m2
存储库。 不工作 詹金斯说,有用的是什么
Job config
页面 Build
,单击“ Advanced
Use private Maven repository
”框 Local to the workspace
。 Save
我知道这是Maven因某种原因习惯做的奇怪事情之一。 和往常一样,错误不足以提供信息/直观。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.