“ คุณไม่มีโครงการ SNAPSHOT ในรายการโครงการเครื่องปฏิกรณ์” เมื่อใช้ปลั๊กอินรุ่น Jenkins Maven


108

ฉันใช้ SVN, Maven 3.0.3 ในเวอร์ชันล่าสุดของ Jenkins และปลั๊กอิน Maven Release ฉันพยายามใช้ปลั๊กอิน Maven release (ผ่าน Jenkins) ทำแบบแห้งและกำลังดำเนินการตัวเลือก ...

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

แต่การวิ่งแห้งกำลังจะตายด้วยข้อผิดพลาดด้านล่าง ...

[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

วิธีการชำระเงิน SVN ของฉันถูกตั้งค่าเป็น "ชำระเงินสำเนาใหม่เสมอ" และฉันมีเวอร์ชันสแนปชอตที่เป็นปัญหาในที่เก็บสแนปชอตของฉัน แต่ไม่ได้อยู่ในที่เก็บรุ่นของฉัน มีวิธีรับ "รายการโครงการเครื่องปฏิกรณ์" เพื่อดูที่เก็บสแนปชอตของฉันหรือไม่

แก้ไข:ฉันกำลังรวมข้อมูลโค้ดของ pom ของฉันที่โปรเจ็กต์ได้รับเวอร์ชัน - มันสืบทอดมาจากผู้ปกครอง

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

2
อะไรversionอยู่ในตัวคุณpom.xml?
MariuszS

บางทีนี่อาจช่วยได้stackoverflow.com/questions/13513758/…
MariuszS

คำตอบ:


158

คุณกำลังพยายามปล่อยสิ่งประดิษฐ์ที่ไม่ใช่สแนปชอต นั่นหมายความว่าหมายเลขเวอร์ชันของอาร์ติแฟกต์ของคุณคือ 3.0.3 หมายเลขเวอร์ชันนั้นบ่งบอกถึงการเปิดตัวแล้ว คุณไม่สามารถปล่อยรุ่นได้ จะไม่มีการเปลี่ยนแปลงระหว่างและดังนั้นจึงไม่มีจุด

คุณควรจะปล่อยเวอร์ชัน SNAPSHOT เท่านั้น นั่นหมายความว่าหมายเลขเวอร์ชันของคุณจะเป็น 3.0.3-SNAPSHOT


1
ฉันเพิ่มวิธีรับเวอร์ชันของฉัน - ฉันรับช่วงจากพ่อแม่ น่าเศร้าถ้าฉันเปลี่ยนเวอร์ชันเป็น "-SNAPSHOT" ฉันได้รับข้อผิดพลาด "ล้มเหลวในการดำเนินการเป้าหมาย org.apache.maven.plugins: maven-release-plugin: 2.0: จัดเตรียม (default-cli) ในโครงการ myproject: Can 'ไม่เผยแพร่โครงการเนื่องจากไม่มีการอ้างอิง "
Dave

@ เดฟฉันคิดว่าคุณจะต้องทำให้ผู้ปกครองเป็นภาพรวมด้วย
Daniel Kaplan

ฉันอาจต้องเปิดคำถาม SO ที่สองเกี่ยวกับเรื่องนี้ แต่ pom แม่มีเวอร์ชัน SNAPSHOT แม้ว่าจะเป็น "53.0.0-SNAPSHOT" (แทนที่จะเป็นสิ่งที่ฉันพยายามจะสืบทอดจาก 52.0.0-SNAPSHOT) . คุณหมายถึงการเปลี่ยนเวอร์ชันใน parent pom หรือไม่?
Dave

1
ฉันคิดว่าข้อความแสดงข้อผิดพลาดไม่สามารถอธิบายได้ในตัวเองเว้นแต่คุณจะรู้ว่า "รายการโครงการเครื่องปฏิกรณ์" หมายถึงอะไร ขอบคุณสำหรับคำตอบที่ชัดเจน

11
มันจะง่ายกว่ามากที่จะเข้าใจหากพวกเขาเพิ่มข้อความเช่น "คุณไม่สามารถปล่อยรุ่นได้" ข้อความที่ปรากฏคือ "คุณไม่มีโครงการ SNAPSHOT ในรายการโครงการเครื่องปฏิกรณ์" ... ใครจะตีความข้อความนี้ได้อย่างที่ควรจะเป็น?
seba.wagner

9

เจนกินส์พื้นที่ทำงานไม่ได้ทำความสะอาดหรือคุณมีรุ่นภายในFINAL pom.xmlJenkins มีกลยุทธ์เช็คเอาต์ในการทำความสะอาดพื้นที่ทำงาน

เพิ่มเติม: ปลั๊กอิน Maven release - จำเป็นต้องมีโครงการ SNAPSHOT

เช็คเอาต์ตัวเลือกกลยุทธ์:

  • เช็คเอาท์ทำความสะอาดเลียนแบบโดยการลบไฟล์แรก unversioned / ไฟล์ละเว้นเช่นเดียวกับไฟล์ / ไดเรกทอรีโดยไม่สนใจแล้วดำเนินการsvn:ignoresvn update
  • ตรวจสอบสำเนาใหม่เสมอ
  • ใช้svn updateให้มากที่สุดsvn revertก่อนอัปเดต

คุณหมายถึงอะไรที่ "Jenkins มีตัวเลือกในการทำความสะอาดพื้นที่ทำงาน" ตัวเลือกเหล่านี้อยู่ที่ไหน คุณกำลังพูดถึงปลั๊กอินการล้างพื้นที่ทำงานสำหรับเจนกินส์หรือไม่?
Dave

เช็คเอาต์ตัวเลือกกลยุทธ์
MariuszS

1
สำหรับฉันนี่เป็นกรณีหลังจากล้างพื้นที่ทำงานของเจนกินส์แล้วมันใช้งานได้
rbhawsar

1

Bump Up ไฟล์ Project POM ของคุณจากฐานรหัสที่สร้างไว้ก่อนหน้านี้ไปยังเวอร์ชันใหม่

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


0

การเปลี่ยนกลยุทธ์การเช็คเอาต์เป็น "จำลองการชำระเงินที่สะอาดโดยการลบไฟล์ที่ไม่ได้เวอร์ชัน / ไฟล์ที่ถูกละเว้นก่อนจากนั้นอัปเดต svn" เป็นเคล็ดลับสำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.