Maven发布插件 - 需要SNAPSHOT项目

Pul*_*wal 10 hudson maven maven-release-plugin jenkins

我正在使用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.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>
Run Code Online (Sandbox Code Playgroud)

是的,我已经完成了我的基本Google + SO拖网,而且它指出我的POM应该有SNAPSHOT作为版本,已经存在.除了我公司的父母POM不是快照.这可能是原因吗?

Mar*_*uee 14

我有同样的问题,但这些解决方案不起作用.这篇由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策略.以下任何一项都应该有效:

  • 总是看一个新的副本
  • 首先删除未版本化/忽略的文件,然后'svn update'来模拟干净的结帐
  • 尽可能使用svn update,在更新前使用'svn revert'

我还建议您清理Jenkins工作区,以确保您重新开始.

  • 你是对的.当我发布问题的时候,我还在学习maven-Jenkins的绳索,但在那之后的几天我也发现了同样的问题.应该纠正我的答案,但既然你先发了,我必须给你.谢谢你解决这个问题. (2认同)

toh*_*ami 5

Master pom不需要那么SNAPSHOT好(在我的公司,我们有相同的设置,它工作正常).utils pom据我所知,这部分是可以的,所以也许你错过了别的东西,比如说

<scm>
    <developerConnection>scm:${release-scm}</developerConnection>
</scm>
Run Code Online (Sandbox Code Playgroud)

当然还有maven release plugin你的构建定义部分POM?(我知道的远射)


小智 5

我有时会发现术语“SNAPSHOT”的拼写问题,这基本上也会导致相同的错误。喜欢:

 1. SNAPSOT
 2. SNASHOT
 3. SHNAPSOT
Run Code Online (Sandbox Code Playgroud)

;-) 所以值得提前检查一下。

很酷的修复方法是在父 pom 上使用:

versions:set
Run Code Online (Sandbox Code Playgroud)

  • +1 我一整天都无法输入 SNAPSHOT。哦,在那里,我做到了。 (2认同)