“Você não tem um projeto SNAPSHOT na lista de projetos do reator.” ao usar o plugin de lançamento Jenkins Maven

106

Estou usando SVN, Maven 3.0.3 na versão mais recente do Jenkins e o plugin Maven Release. Estou tentando usar o plugin de lançamento do Maven (por meio do Jenkins) para fazer uma simulação e, portanto, estou executando as opções ...

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

Mas o teste está morrendo com o erro abaixo ...

[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

Meu método de verificação de SVN está definido como "Sempre verificar uma nova cópia" e eu tenho uma versão de instantâneo em questão em meu repositório de instantâneos, mas não em meu repositório de lançamento. Existe uma maneira de obter a "lista de projetos do reator" para ver meu repositório de instantâneos?

Editar: estou incluindo o trecho do meu pom onde o projeto obtém sua versão - ele o herda de um pai

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>
Dave
fonte
2
O que versionestá em seu pom.xml?
MariuszS
Talvez isso possa ajudar stackoverflow.com/questions/13513758/…
MariuszS

Respostas:

156

Você está tentando liberar um artefato que não é um instantâneo. Isso significa que o número da versão do seu artefato é algo como 3.0.3. Esse número de versão implica que já foi lançado. Você não pode lançar um lançamento. Não haveria mudanças no meio e, portanto, nenhum ponto.

Você só deve lançar versões SNAPSHOT. Isso significa que o número da sua versão seria como 3.0.3-SNAPSHOT.

Daniel Kaplan
fonte
1
Eu adicionei como estou obtendo minha versão - estou herdando de um pai pom. Infelizmente, se eu alterar a versão para incluir "-SNAPSHOT," recebo o erro, "Falha ao executar o objetivo org.apache.maven.plugins: maven-release-plugin: 2.0: prepare (default-cli) no projeto myproject: Can não lançar projeto devido a dependências não lançadas "
Dave
@Dave Acho que você também terá que fazer do pai uma foto instantânea.
Daniel Kaplan
Posso precisar abrir uma segunda pergunta do SO sobre isso, mas o pom pai tem uma versão SNAPSHOT, embora seja "53.0.0-SNAPSHOT" (em vez do que estou tentando herdar, 52.0.0-SNAPSHOT) . Você estava se referindo a alterar a versão no pom pai?
Dave
1
Acho que a mensagem de erro não é autoexplicativa, a menos que você saiba o que significa "lista de projetos de reator". Obrigado pela resposta muito clara.
10
Seria muito mais fácil de entender se eles simplesmente adicionassem uma mensagem como "Você não pode lançar um lançamento.". A mensagem que eles apresentam é "Você não tem um projeto SNAPSHOT na lista de projetos do reator." ... Quem vai interpretar esta mensagem da maneira que deve?
seba.wagner
8

O espaço de trabalho do Jenkins não está limpo ou você tem uma FINALversão interna pom.xml. Jenkins tem uma estratégia de check-out para limpar o espaço de trabalho.

Mais: plugin de lançamento do Maven - projeto SNAPSHOT necessário

Opções de estratégia de check-out:

  • Emule o check-out limpo, primeiro excluindo arquivos não versionados / arquivos ignorados, bem como arquivos / diretórios ignorados por e svn:ignore, em seguida, execute svn update.
  • Sempre verifique uma cópia nova
  • Use svn updateo máximo possível, svn revertantes da atualização
MariuszS
fonte
O que você quer dizer com "Jenkins tem opções para limpar o espaço de trabalho"? Onde estão essas opções? Você está falando sobre o plugin de limpeza do espaço de trabalho para Jenkins?
Dave
Opções de estratégia de check-out
MariuszS
1
para mim foi esse o caso, depois de limpar o espaço de trabalho de Jenkins, funcionou.
rbhawsar
1

Aumente o seu arquivo POM do projeto da base de código criada anteriormente para uma nova versão.

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

Sr. Nsubuga
fonte
0

Mudar a estratégia de check-out para "Emular check-out limpo, primeiro deletando arquivos não versionados / arquivos ignorados, então svn update" funcionou para mim.

Faentur
fonte