“Anda tidak memiliki proyek SNAPSHOT dalam daftar proyek reaktor.” saat menggunakan plugin rilis Jenkins Maven

106

Saya menggunakan SVN, Maven 3.0.3 pada versi terbaru Jenkins dan plugin Maven Release. Saya mencoba menggunakan plugin rilis Maven (melalui Jenkins) melakukan uji coba dan menjalankan opsinya…

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

Tapi proses kering sedang sekarat dengan kesalahan di bawah ...

[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

Metode checkout SVN saya disetel ke "Selalu periksa salinan baru" dan saya memiliki versi snapshot yang dipermasalahkan di repositori snapshot saya, tetapi tidak di repositori rilis saya. Adakah cara agar saya bisa mendapatkan "daftar proyek reaktor" untuk melihat repo snapshot saya?

Sunting: Saya menyertakan cuplikan pom saya di mana proyek mendapatkan versinya - mewarisinya dari induk

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>
Dave
sumber
2
Apa yang versionada di dalam dirimu pom.xml?
MariuszS
Mungkin ini dapat membantu stackoverflow.com/questions/13513758/…
MariuszS

Jawaban:

156

Anda mencoba melepaskan artefak yang bukan snapshot. Artinya, nomor versi artefak Anda adalah seperti 3.0.3. Nomor versi itu berarti sudah dirilis. Anda tidak bisa merilis rilis. Tidak akan ada perubahan di antara keduanya dan karenanya tidak ada gunanya.

Anda hanya harus merilis versi SNAPSHOT. Itu berarti nomor versi Anda akan seperti 3.0.3-SNAPSHOT.

Daniel Kaplan
sumber
1
Saya menambahkan bagaimana saya mendapatkan versi saya - saya mewarisinya dari pom orang tua. Sayangnya jika saya mengubah versi untuk menyertakan "-SNAPSHOT," saya mendapatkan kesalahan, "Gagal mengeksekusi tujuan org.apache.maven.plugins: maven-release-plugin: 2.0: mempersiapkan (default-cli) pada proyek myproject: Can proyek rilis karena dependensi yang tidak dirilis "
Dave
@ Dave Saya rasa Anda juga harus membuat orang tua menjadi snapshot.
Daniel Kaplan
Saya mungkin perlu membuka pertanyaan SO kedua tentang ini, tetapi pom induk memang memiliki versi SNAPSHOT, meskipun itu adalah "53.0.0-SNAPSHOT" (bukan dari apa yang saya coba warisi, 52.0.0-SNAPSHOT) . Apakah Anda bermaksud mengubah versi di pom induk?
Dave
1
Saya pikir pesan kesalahan tidak cukup jelas kecuali Anda tahu apa artinya "daftar proyek reaktor". Terima kasih atas jawaban yang sangat jelas.
10
Akan jauh lebih mudah untuk memahami jika mereka hanya menambahkan pesan seperti "Anda tidak bisa merilis rilis.". Pesan yang mereka sampaikan adalah "Anda tidak memiliki proyek SNAPSHOT dalam daftar proyek reaktor." ... Siapa yang akan menafsirkan pesan ini sebagaimana mestinya?
seba.wagner
8

Ruang kerja Jenkins tidak dibersihkan atau Anda memiliki FINALversi di dalamnya pom.xml. Jenkins memiliki strategi check-out untuk membersihkan ruang kerja.

Selengkapnya: Plugin rilis Maven - diperlukan proyek SNAPSHOT

Opsi Strategi Check-out:

  • Meniru checkout bersih dengan terlebih dahulu menghapus file tidak berversi / file yang diabaikan, serta file / direktori yang diabaikan oleh svn:ignore, lalu jalankan svn update.
  • Selalu periksa salinan baru
  • Gunakan svn updatesebanyak mungkin, dengan svn revertsebelum update
MariuszS
sumber
Apa yang Anda maksud dengan "Jenkins memiliki opsi untuk membersihkan ruang kerja"? Di mana opsi-opsi ini? Apakah Anda berbicara tentang plugin pembersihan ruang kerja untuk Jenkins?
Dave
Opsi Strategi Check-out
MariuszS
1
bagi saya ini masalahnya, setelah membersihkan ruang kerja jenkins itu berhasil.
rbhawsar
1

Tingkatkan file POM Proyek Anda dari basis kode yang dibuat sebelumnya ke versi baru.

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

Tuan Nsubuga
sumber
0

Mengubah strategi check-out menjadi "Emulasikan checkout bersih dengan terlebih dahulu menghapus file tidak berversi / file yang diabaikan, lalu svn update" berhasil bagi saya.

Faentur
sumber