提问人:Dave 提问时间:11/19/2013 最后编辑:Dave 更新时间:8/21/2018 访问量:132771
使用 Jenkins Maven 发布插件时,“Reactor 项目列表中没有 SNAPSHOT 项目”
"You don't have a SNAPSHOT project in the reactor projects list." when using Jenkins Maven release plugin
问:
我在最新版本的 Jenkins 和 Maven Release 插件上使用 SVN、Maven 3.0.3。我正在尝试使用 Maven 发布插件(通过 Jenkins)进行试运行,因此我正在执行选项......
Executing Maven: -B -f /scratch/jenkins/workspace/myproject/myproject/pom.xml -DdevelopmentVersion=53.0.0-SNAPSHOT -DreleaseVersion=52.0.0 -Dusername=***** -Dpassword=********* -DskipTests -P prod -Dresume=false -DdryRun=true release:prepare
但是试运行正在因以下错误而消亡......
[JENKINS] Archiving /scratch/jenkins/workspace/myproject/myproject/pom.xml to /home/evotext/hudson_home/jobs/myproject/modules/org.mainco.subco$myproject/builds/2013-11-18_16-09-14/archive/org.mainco.subco/myproject/52.0.0/myproject-52.0.0.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project myproject: You don't have a SNAPSHOT project in the reactor projects list.
cause : You don't have a SNAPSHOT project in the reactor projects list.
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project myproject: You don't have a SNAPSHOT project in the reactor projects list.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:129)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:67)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.maven.plugin.MojoFailureException: You don't have a SNAPSHOT project in the reactor projects list.
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:219)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:181)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 30 more
Caused by: org.apache.maven.shared.release.ReleaseFailureException: You don't have a SNAPSHOT project in the reactor projects list.
at org.apache.maven.shared.release.phase.CheckPomPhase.execute(CheckPomPhase.java:111)
at org.apache.maven.shared.release.phase.CheckPomPhase.simulate(CheckPomPhase.java:123)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:199)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:140)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:103)
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:211)
... 33 more
我的 SVN 检出方法设置为“始终检出新副本”,并且我的快照存储库中有相关快照版本,但在我的发布存储库中没有。有没有办法让“反应堆项目列表”查看我的快照存储库?
编辑:我包括了我的 pom 的片段,项目在其中获取其版本——它从父级继承了它
<parent>
<artifactId>subco</artifactId>
<groupId>org.mainco.subco</groupId>
<version>52.0.0</version>
</parent>
答:
9赞
MariuszS
11/19/2013
#1
Jenkins 工作区未清理或您内部有版本。Jenkins 有清理工作区的签出策略。FINAL
pom.xml
更多: Maven 发布插件 - 需要 SNAPSHOT 项目
结账策略选项:
- 通过首先删除未版本控制的文件/忽略的文件以及被忽略的文件/目录来模拟干净检出,然后执行 。
svn:ignore
svn update
- 总是签出新鲜的副本
- 尽可能多地使用,在更新之前
svn update
svn revert
评论
0赞
Dave
11/19/2013
“Jenkins 有清理工作区的选项”是什么意思?这些选项在哪里?你说的是 Jenkins 的工作区清理插件吗?
0赞
MariuszS
11/19/2013
结账策略选项
1赞
rbhawsar
9/13/2017
对我来说,情况就是这样,在清除 Jenkins 工作区后,它起作用了。
185赞
Daniel Kaplan
11/19/2013
#2
您正在尝试释放不是快照的项目。这意味着您的工件的版本号类似于 3.0.3。该版本号意味着它已经发布。您无法发布版本。两者之间不会有任何变化,因此没有意义。
您只应该发布 SNAPSHOT 版本。这意味着您的版本号类似于 3.0.3-SNAPSHOT。
评论
1赞
Dave
11/19/2013
我添加了我如何获得我的版本 - 我是从父 pom 继承它的。可悲的是,如果我将版本更改为包含“-SNAPSHOT”,我会收到错误,“无法在项目 myproject 上执行目标 org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli):由于未发布的依赖项,无法释放项目”
0赞
Daniel Kaplan
11/19/2013
@Dave我认为你也必须将父级制作成一个快照。
0赞
Dave
11/20/2013
我可能需要就此打开第二个 SO 问题,但父 pom 确实有一个 SNAPSHOT 版本,尽管它是“53.0.0-SNAPSHOT”(而不是我试图继承的 52.0.0-SNAPSHOT)。您指的是更改父 pom 中的版本吗?
1赞
4/24/2014
我认为错误消息不是不言自明的,除非您知道“反应堆项目列表”是什么意思。感谢您非常明确的答案。
14赞
seba.wagner
8/7/2015
如果他们只是添加一条消息,比如“你不能发布一个版本。他们提出的消息是“您在反应堆项目列表中没有 SNAPSHOT 项目。谁会以它应该的方式解释这个信息?
0赞
Faentur
3/11/2014
#3
将签出策略更改为“通过首先删除未版本化文件/忽略的文件,然后 svn update 来模拟干净的签出”对我来说很成功。
2赞
Mr Nsubuga
8/21/2018
#4
将您的项目 POM 文件从之前构建的代码库提升到新版本。
1.0.1-快照<version>1.0.1-SNAPSHOT</version>
评论
version
pom.xml