„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>

2
Co versionjest w twoim pom.xml?
— 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.


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ą

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>


0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.