Maven的发布插件 - 快照项目所需(Maven release plugin - SNAPSHO

2019-07-04 01:20发布

我现在用的M2版本的插件从内部詹金斯这就要求行家释放小插件2.3.2内部和同时建立抛出这个错误: You don't have a SNAPSHOT project in the reactor projects list 。 问题是,我的项目劲歌有自己的版本为1.0.0快照。 我在想什么?

com.abc.defcompany parent POM ,和我只是做了mvn releaseutils

<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不是快照。 莫非是什么原因呢?

Answer 1:

我有同样的问题,但这些解决方案没有奏效。 本博客文章由托梅克Kaczanowski击中了要害。

原因往往是,詹金斯SVN策略设置为“使用svn更新尽可能多地”之间架起不清理编译工作区。

当你试图削减释放,詹金斯将更新您的POM,并创建一些临时文件。 如果发布失败,这些POM更新文件和临时文件都没有清理。 那么,当你解决POM,并试图重建,你会得到You don't have a SNAPSHOT project in the reactor projects list错误,由于这些时髦的工作区文物混淆詹金斯。

解决的办法是改变你的詹金斯SVN策略。 以下任何方式应该工作:

  • 经常检查出的全新副本
  • 首先删除未版本控制/忽略的文件效仿干净的检出,那么“SVN更新”
  • 更新之前,使用svn更新尽可能多地与“SVN恢复”

我也建议你明确你的工作空间詹金斯只是为了确保你开始新鲜。



Answer 2:

pom并不需要是SNAPSHOT ,以及(在我的公司,我们有相同的设置,它的工作原理确定)。 这部分utils pom是OK,据我所知道的,所以也许你错过了别的东西,像

<scm>
    <developerConnection>scm:${release-scm}</developerConnection>
</scm>

当然还有maven release plugin在您的构建定义部分POM ? (一个长镜头,我知道)



Answer 3:

我有时发现与术语拼写问题:“快照”,基本上也将导致同样的错误。 喜欢:

 1. SNAPSOT
 2. SNASHOT
 3. SHNAPSOT

;-)所以这是值得检查了这一点放在首位。

凉爽的固定是对父POM使用:

versions:set


Answer 4:

其实Jenkis的工作区包含一些模块的旧的非快照版本。 尝试wipout工作区(=清洁和清除它),然后再做一个版本,他将得到后缀-SNAPSHOT的修正版本



Answer 5:

我找到了原因:最新的公司父POM没有被拾起

  1. 我有clean-U无论是在mvn参数列表。 不工作
  2. 然后我打扫~/.m2库。 不工作

什么是工作,在詹金斯

  1. 后藤的Job config页面
  2. Build ,单击Advanced
  3. 检查框Use private Maven repository
  4. 选择Local to the workspaceSave

我知道这是那些奇怪的事情Maven有做某种原因的习惯之一。 和往常一样的错误并不翔实/直观不够。



文章来源: Maven release plugin - SNAPSHOT project needed