最新バージョンのJenkinsでSVN、Maven 3.0.3、およびMaven Releaseプラグインを使用しています。私は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>
スナップショットではないアーティファクトをリリースしようとしています。つまり、アーティファクトのバージョン番号は3.0.3のようなものです。そのバージョン番号は、すでにリリースされていることを意味します。リリースをリリースすることはできません。間に変更はないため、ポイントはありません。
SNAPSHOTバージョンのみをリリースすることになっています。つまり、バージョン番号は3.0.3-SNAPSHOTのようになります。
Jenkinsワークスペースがクリーンアップされていないか、pom.xml
内にFINAL
バージョンがあります。 Jenkinsには、ワークスペースをクリーンアップするためのチェックアウト戦略があります。
詳細: Mavenリリースプラグイン-SNAPSHOTプロジェクトが必要
チェックアウト戦略オプション:
svn:ignore
によって無視されたファイル/ディレクトリを最初に削除して、クリーンチェックアウトをエミュレートし、次にsvn update
を実行します。svn update
を可能な限り使用し、更新前にsvn revert
を使用しますチェックアウト戦略を「最初にバージョン管理外のファイル/無視されたファイルを削除し、次にsvn updateでクリーンチェックアウトをエミュレートする」に変更すると、私にとってはうまくいきました。
以前にビルドされたコードベースから新しいバージョンにプロジェクトPOMファイルをバンプアップします。
1.0.1-SNAPSHOT<version>1.0.1-SNAPSHOT</version>