«Vous n'avez pas de projet SNAPSHOT dans la liste des projets de réacteur.» lors de l'utilisation du plugin de version Jenkins Maven

106

J'utilise SVN, Maven 3.0.3 sur la dernière version de Jenkins et le plugin Maven Release. J'essaie d'utiliser le plugin de publication Maven (via Jenkins) pour faire un essai à sec et donc j'exécute 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 à sec 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 versions. Existe-t-il un moyen d'obtenir la «liste des projets de réacteurs» pour consulter mon dépôt instantané?

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

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>
Dave
la source
2
Qu'y a version- t -il dans votre pom.xml?
MariuszS
Peut-être que cela peut aider stackoverflow.com/questions/13513758/…
MariuszS

Réponses:

157

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 publier une version. Il n'y aurait aucun changement entre les deux et donc aucun point.

Vous êtes censé publier uniquement les versions SNAPSHOT. Cela signifie que votre numéro de version serait comme 3.0.3-SNAPSHOT.

Daniel Kaplan
la source
1
J'ai ajouté comment j'obtiens ma version - je l'hérite d'un pom parent. Malheureusement, si je change la version pour inclure "-SNAPSHOT," j'obtiens l'erreur, "Impossible d'exécuter l'objectif org.apache.maven.plugins: maven-release-plugin: 2.0: prepare (default-cli) sur le projet monprojet: Peut Projet de publication en raison de dépendances non publiées "
Dave
@Dave Je pense que vous devrez aussi faire du parent un instantané.
Daniel Kaplan
Je devrai peut-être ouvrir une deuxième question SO à ce sujet, mais le pom parent a une version SNAPSHOT, bien que ce soit "53.0.0-SNAPSHOT" (au lieu de ce dont j'essaie d'hériter, 52.0.0-SNAPSHOT) . Faisiez-vous référence au changement de version dans le pom parent?
Dave
1
Je pense que le message d'erreur n'est pas explicite à moins que vous ne sachiez ce que signifie «liste de projets de réacteur». Merci pour la réponse très claire.
10
Ce serait tellement plus facile à comprendre s'ils ajoutaient simplement un message comme "Vous ne pouvez pas publier une version.". Le message qu'ils proposent est "Vous n'avez pas de projet SNAPSHOT dans la liste des projets de réacteur." ... Qui interprétera jamais ce message comme il est censé le faire?
seba.wagner
8

L'espace de travail Jenkins n'est pas un nettoyage ou vous avez une FINALversion à l'intérieur pom.xml. Jenkins a une stratégie de vérification pour nettoyer l'espace de travail.

Plus: Plugin de version Maven - Projet SNAPSHOT nécessaire

Options de stratégie de départ:

  • Émulez l'extraction 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.
  • Vérifiez toujours une copie fraîche
  • Utilisez svn updateautant que possible, svn revertavant la mise à jour
MariuszS
la source
Qu'entendez-vous par "Jenkins a des options pour nettoyer l'espace de travail"? Où sont ces options? Parlez-vous du plugin de nettoyage de l'espace de travail pour Jenkins?
Dave
Options de stratégie de départ
MariuszS
1
pour moi, c'était le cas, après avoir nettoyé l'espace de travail jenkins, cela a fonctionné.
rbhawsar
1

Transformez votre fichier Project POM de la base de code précédemment créée à une nouvelle version.

1.0.1-INSTANTANÉ<version>1.0.1-SNAPSHOT</version>

Monsieur Nsubuga
la source
0

Changer la stratégie d'extraction en "Émuler l'extraction propre en supprimant d'abord les fichiers non versionnés / les fichiers ignorés, puis svn update" a fait l'affaire pour moi.

Faentur
la source