"원자로 프로젝트 목록에 SNAPSHOT 프로젝트가 없습니다." Jenkins Maven 릴리스 플러그인을 사용할 때


105

최신 버전의 Jenkins 및 Maven 릴리스 플러그인에서 SVN, Maven 3.0.3을 사용하고 있습니다. (Jenkins를 통해) Maven 릴리스 플러그인을 사용하여 드라이 런을 수행하고 옵션을 실행하려고합니다.

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

답변:


156

스냅 샷이 아닌 아티팩트를 릴리스하려고합니다. 이는 아티팩트의 버전 번호가 3.0.3과 비슷하다는 것을 의미합니다. 이 버전 번호는 이미 출시되었음을 의미합니다. 릴리스를 릴리스 할 수 없습니다. 그 사이에 변화가 없기 때문에 의미가 없습니다.

SNAPSHOT 버전 만 출시해야합니다. 즉, 버전 번호는 3.0.3-SNAPSHOT과 같습니다.


1
내 버전을 얻는 방법을 추가했습니다. 부모 pom에서 상속하고 있습니다. 슬프게도 버전을 "-SNAPSHOT"을 포함하도록 변경하면 "Failed to execute goal org.apache.maven.plugins : maven-release-plugin : 2.0 : prepare (default-cli) on project myproject : Can 릴리스되지 않은 종속성으로 인해 프로젝트를 릴리스하지 않습니다. "
Dave

@Dave 부모도 스냅 샷으로 만들어야한다고 생각합니다.
Daniel Kaplan

이에 대해 두 번째 질문을 열어야 할 수도 있지만 부모 pom에는 "53.0.0-SNAPSHOT"이지만 SNAPSHOT 버전이 있습니다 (내가 상속하려는 항목 대신 52.0.0-SNAPSHOT). . 부모 pom에서 버전 변경을 언급 했습니까?
Dave

1
"반응기 프로젝트 목록"이 무엇을 의미하는지 모르면 오류 메시지가 자명하지 않다고 생각합니다. 매우 명확한 답변에 감사드립니다.

10
"You ca n't release a release."와 같은 메시지 만 추가하면 이해하기가 훨씬 쉬울 것입니다. 그들이 제시하는 메시지는 "당신은 원자로 프로젝트 목록에 SNAPSHOT 프로젝트가 없습니다."입니다. ... 누가이 메시지를 예상대로 해석할까요?
seba.wagner

8

젠킨스 작업 공간이 정리되지 않았거나, 당신은 FINAL버전 내부 pom.xml. Jenkins에는 작업 공간 정리를위한 체크 아웃 전략이 있습니다.

더보기 : Maven 릴리스 플러그인-SNAPSHOT 프로젝트 필요

체크 아웃 전략 옵션 :

  • 먼저 버전이 지정되지 않은 파일 / 무시 된 파일과에서 무시 된 파일 / 디렉토리를 삭제하여 깨끗한 체크 아웃을 에뮬레이트 svn:ignore한 다음을 실행 svn update합니다.
  • 항상 새로운 사본을 확인하십시오
  • 업데이트 전에 svn update가능한 많이 사용하십시오.svn revert

"Jenkins에는 작업 공간 정리 옵션이 있습니다."란 무엇을 의미합니까? 이러한 옵션은 어디에 있습니까? Jenkins 용 작업 공간 정리 플러그인에 대해 이야기하고 있습니까?
Dave

체크 아웃 전략 옵션
MariuszS 2013

1
나를 위해 이것은 젠킨스 작업 공간을 지운 후에 작동했습니다.
rbhawsar

1

이전에 빌드 된 코드베이스에서 새 버전으로 프로젝트 POM 파일을 올립니다.

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


0

체크 아웃 전략을 "먼저 버전이 지정되지 않은 파일 / 무시 된 파일을 삭제하여 깨끗한 체크 아웃을 에뮬레이트 한 다음 svn 업데이트"로 변경하는 것이 트릭이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.