"Non hai un progetto SNAPSHOT nell'elenco dei progetti del reattore." quando si utilizza il plug-in di rilascio Jenkins Maven


106

Sto usando SVN, Maven 3.0.3 sull'ultima versione di Jenkins e il plug-in Maven Release. Sto cercando di utilizzare il plug-in di rilascio di Maven (tramite Jenkins) per eseguire un funzionamento a secco e quindi sto eseguendo le opzioni ...

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

Ma la corsa a secco sta morendo con l'errore qui sotto ...

[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

Il mio metodo di checkout SVN è impostato su "Checkout sempre una nuova copia" e ho una versione snapshot in questione nel mio repository snapshot, ma non nel mio repository release. C'è un modo per ottenere la "lista dei progetti del reattore" per guardare il mio repository di istantanee?

Modifica: includo lo snippet del mio pom in cui il progetto ottiene la sua versione: lo eredita da un genitore

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>

2
Cosa versionc'è nel tuo pom.xml?
MariuszS

Risposte:


156

Stai cercando di rilasciare un artefatto che non è un'istantanea. Ciò significa che il numero di versione del tuo artefatto è qualcosa come 3.0.3. Quel numero di versione implica che è già stato rilasciato. Non puoi rilasciare una liberatoria. Non ci sarebbero cambiamenti nel mezzo e quindi non ha senso.

Dovresti solo rilasciare versioni SNAPSHOT. Ciò significa che il tuo numero di versione sarà come 3.0.3-SNAPSHOT.


1
Ho aggiunto come ottengo la mia versione: la sto ereditando da un genitore pom. Purtroppo se cambio la versione per includere "-SNAPSHOT", ricevo l'errore "Impossibile eseguire l'obiettivo org.apache.maven.plugins: maven-release-plugin: 2.0: prepare (default-cli) sul progetto myproject: Can non rilasciare il progetto a causa di dipendenze non rilasciate "
Dave

@ Dave, penso che dovrai anche fare un'istantanea al genitore.
Daniel Kaplan

Potrei aver bisogno di aprire una seconda domanda SO su questo, ma il genitore pom ha una versione SNAPSHOT, sebbene sia "53.0.0-SNAPSHOT" (invece di quello da cui sto cercando di ereditare, 52.0.0-SNAPSHOT) . Ti riferivi alla modifica della versione nel pom genitore?
Dave

1
Penso che il messaggio di errore non sia autoesplicativo a meno che tu non sappia cosa significa "elenco progetti reattore". Grazie per la risposta molto chiara.

10
Sarebbe molto più facile capire se aggiungessero semplicemente un messaggio come "Non puoi rilasciare una versione". Il messaggio che escono è "Non hai un progetto SNAPSHOT nell'elenco dei progetti del reattore". ... Chi interpreterà mai questo messaggio nel modo in cui dovrebbe?
seba.wagner

8

L'area di lavoro di Jenkins non è ripulita o hai una FINALversione all'interno pom.xml. Jenkins ha una strategia di check-out per ripulire l'area di lavoro.

Altro: plug-in di rilascio Maven - Necessario progetto SNAPSHOT

Opzioni di strategia di check-out:

  • Emula il checkout pulito eliminando prima i file senza versione / file ignorati, nonché i file / directory ignorati da svn:ignore, quindi esegui svn update.
  • Controlla sempre una nuova copia
  • Usa svn updateil più possibile, con svn revertprima dell'aggiornamento

Cosa intendi con "Jenkins ha opzioni per ripulire lo spazio di lavoro"? Dove sono queste opzioni? Stai parlando del plug-in di pulizia dell'area di lavoro per Jenkins?
Dave

Opzioni di strategia di check-out
MariuszS

1
per me questo è stato il caso, dopo aver cancellato lo spazio di lavoro di jenkins ha funzionato.
rbhawsar

1

Aumenta il tuo file Project POM per dalla base di codice costruita in precedenza a una nuova versione.

1.0.1-SNAPSHOT<version>1.0.1-SNAPSHOT</version>


0

Cambiare la strategia di check-out in "Emula il checkout pulito eliminando prima i file senza versione / i file ignorati, quindi l'aggiornamento svn" ha funzionato per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.