“Vous n’avez pas de projet SNAPSHOT dans la liste des projets de réacteurs.” Lors de l’utilisation du plugin de publication Jenkins Maven

J’utilise SVN, Maven 3.0.3 sur la dernière version de Jenkins et le plugin Maven Release. J’essaie d’utiliser le plug-in de la version Maven (via Jenkins) pour faire un essai à sec et j’exécute donc les options…

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 

Mais la course à pied meurt avec l’erreur ci-dessous…

 [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 

Ma méthode d’extraction SVN est définie sur “Toujours extraire une nouvelle copie” et j’ai une version d’instantané en question dans mon référentiel d’instantanés, mais pas dans mon référentiel de versions. Y a-t-il un moyen d’obtenir que la liste des projets de réacteurs examine mon référentiel d’instantanés?

Edit: j’inclus l’extrait de mon pom où le projet obtient sa version – il hérite d’un parent

   subco org.mainco.subco 52.0.0  

Vous essayez de libérer un artefact qui n’est pas un instantané. Cela signifie que le numéro de version de votre artefact est quelque chose comme 3.0.3. Ce numéro de version implique qu’il a déjà été publié. Vous ne pouvez pas libérer une version. Il n’y aurait aucun changement entre et donc aucun point.

Vous n’êtes censé libérer que des versions de SNAPSHOT. Cela signifie que votre numéro de version serait comme 3.0.3-SNAPSHOT.

L’espace de travail Jenkins n’est pas un nettoyage ou vous avez une version FINAL dans pom.xml . Jenkins a une stratégie de vérification pour nettoyer l’espace de travail.

Plus: plugin de sortie Maven – projet SNAPSHOT nécessaire

Options de stratégie de départ:

  • Émulez une vérification propre en supprimant d’abord les fichiers non versionnés / les fichiers ignorés, ainsi que les fichiers / répertoires ignorés par svn:ignore , puis exécutez svn update .
  • Toujours vérifier la copie fraîche
  • Utilisez autant que possible svn update , avec svn revert avant la mise à jour

La modification de la stratégie d’extraction pour “Émuler une extraction en supprimant d’abord les fichiers non versionnés / les fichiers ignorés, puis svn update” a fait l’affaire.

Renforcez le fichier POM de votre projet depuis la base de code précédemment créée vers une nouvelle version.

1.0.1-SNAPSHOT 1.0.1-SNAPSHOT