„Nie masz projektu SNAPSHOT na liście projektów reaktora”. podczas korzystania z wtyczki Jenkins Maven

106

Używam SVN, Maven 3.0.3 na najnowszej wersji Jenkinsa i wtyczki Maven Release. Próbuję użyć wtyczki Maven do wydania (przez Jenkinsa), wykonać próbny przebieg, więc wykonuję opcje…

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

Ale próba umiera z powodu poniższego błędu…

[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

Moja metoda pobierania SVN jest ustawiona na „Zawsze pobieraj świeżą kopię” i mam kwestionowaną wersję migawki w moim repozytorium migawek, ale nie w moim repozytorium wersji. Czy istnieje sposób, aby wyświetlić „listę projektów reaktorów”, aby przejrzeć moje repozytorium migawek?

Edycja: dołączam fragment mojego pom, w którym projekt pobiera swoją wersję - dziedziczy go po rodzicu

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>
Dave
źródło
2
Co versionjest w twoim pom.xml?
MariuszS
Może to pomoże stackoverflow.com/questions/13513758/ ...
MariuszS

Odpowiedzi:

157

Próbujesz uwolnić artefakt, który nie jest migawką. Oznacza to, że numer wersji twojego artefaktu to mniej więcej 3.0.3. Ten numer wersji oznacza, że ​​została już wydana. Nie możesz wydać wydania. Nie byłoby żadnych zmian pomiędzy, a zatem nie ma sensu.

Macie tylko wypuszczać wersje SNAPSHOT. Oznacza to, że numer Twojej wersji to 3.0.3-SNAPSHOT.

Daniel Kaplan
źródło
1
Dodałem, jak otrzymuję swoją wersję - dziedziczę ją z pom-rodzica. Niestety, jeśli zmienię wersję tak, aby zawierała „-SNAPSHOT”, pojawia się błąd, „Nie udało się wykonać celu org.apache.maven.plugins: maven-release-plugin: 2.0: przygotuj (default-cli) w projekcie myproject: Can Projekt nie jest wydany z powodu niezwolnionych zależności ”
Dave
@Dave Myślę, że będziesz musiał również zrobić zdjęcie rodzicowi.
Daniel Kaplan,
Być może będę musiał otworzyć drugie pytanie SO na ten temat, ale nadrzędny pom ma wersję SNAPSHOT, chociaż jest to „53.0.0-SNAPSHOT” (zamiast tego, z czego próbuję odziedziczyć, 52.0.0-SNAPSHOT) . Czy odnosiłeś się do zmiany wersji w nadrzędnym pomie?
Dave,
1
Myślę, że komunikat o błędzie nie jest oczywisty, chyba że wiesz, co oznacza „lista projektów reaktorów”. Dzięki za bardzo jasną odpowiedź.
10
Byłoby o wiele łatwiejsze do zrozumienia, gdyby dodali po prostu wiadomość typu „Nie możesz wydać wydania”. Komunikat, jaki wymyślili, brzmi: „Nie masz projektu SNAPSHOT na liście projektów reaktora”. ... Kto kiedykolwiek zinterpretuje tę wiadomość tak, jak powinna?
seba.wagner
8

Obszar roboczy Jenkins nie jest czyszczony lub masz FINALwersję w środku pom.xml. Jenkins ma strategię wymeldowania, aby oczyścić miejsce pracy.

Więcej: Wtyczka do wydania Maven - potrzebny projekt SNAPSHOT

Opcje strategii kasy:

  • Emuluj czyste pobieranie, najpierw usuwając niewersjonowane pliki / zignorowane pliki, a także pliki / katalogi zignorowane przez svn:ignore, a następnie wykonaj svn update.
  • Zawsze sprawdzaj świeżą kopię
  • Użyj svn updatejak najwięcej, svn revertprzed aktualizacją
Mariusz S.
źródło
Co masz na myśli, mówiąc „Jenkins ma opcje czyszczenia przestrzeni roboczej”? Gdzie są te opcje? Czy mówisz o wtyczce do czyszczenia obszaru roboczego dla Jenkins?
Dave
Opcje strategii wymeldowania
MariuszS
1
u mnie tak było, po wyczyszczeniu obszaru roboczego Jenkinsa zadziałało.
rbhawsar
1

Zwiększ swój plik POM projektu z poprzednio zbudowanej bazy kodu do nowej wersji.

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

Panie Nsubuga
źródło
0

Zmiana strategii wypisywania na „Emuluj czyste pobieranie, najpierw usuwając niewersjonowane pliki / zignorowane pliki, a następnie aktualizację svn” załatwiła sprawę.

Faentur
źródło