繁体   English   中英

Maven发布插件 - 需要SNAPSHOT项目

[英]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.defcompany 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策略。 以下任何一项都应该有效:

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

我还建议您清理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没有被接收

  1. 我在mvn参数列表中都clean -U 不工作
  2. 然后我清理了~/.m2存储库。 不工作

詹金斯说,有用的是什么

  1. 转到Job config页面
  2. 转到“ Build ,单击“ Advanced
  3. 选中“ Use private Maven repository ”框
  4. 选择“ Local to the workspace Save

我知道这是Maven因某种原因习惯做的奇怪事情之一。 和往常一样,错误不足以提供信息/直观。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM