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 publication de Maven (via Jenkins) pour effectuer une analyse à 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 piste sèche est en train de mourir 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 version. Existe-t-il un moyen d'obtenir la "liste des projets de réacteurs" pour consulter mon dépôt instantané?
Modifier: J'inclus l'extrait de mon pom où le projet obtient sa version - il hérite d'un parent
<parent>
<artifactId>subco</artifactId>
<groupId>org.mainco.subco</groupId>
<version>52.0.0</version>
</parent>
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 un communiqué. Il n'y aurait aucun changement entre les deux et donc aucun point.
Vous êtes uniquement censé publier les versions 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 FINAL
version à l'intérieur de pom.xml
. Jenkins a une stratégie de contrôle pour nettoyer l'espace de travail.
Plus: plugin Maven release - projet SNAPSHOT nécessaire
Options de la stratégie de départ:
svn:ignore
, puis exécutez svn update
.svn update
autant que possible, avec svn revert
avant la mise à jourChanger la stratégie de check-out pour "Emuler un check-out propre en supprimant d'abord les fichiers non versionnés/ignorés, puis svn update" a été l'affaire pour moi.
Bump Up votre fichier Project POM pour à partir de la base de code construite précédemment à une nouvelle version.
1.0.1-SNAPSHOT<version>1.0.1-SNAPSHOT</version>