«У вас нет проекта SNAPSHOT в списке проектов реакторов». при использовании плагина выпуска Jenkins Maven

107

Я использую SVN, Maven 3.0.3 в последней версии Jenkins и плагин Maven Release. Я пытаюсь использовать плагин выпуска Maven (через 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: prepare (default-cli) в проекте myproject: Can «не выпускаем проект из-за невыпущенных зависимостей»
Дэйв
@ Дэйв, я думаю, тебе тоже придется сделать снимок родителя.
Daniel Kaplan
Возможно, мне придется открыть второй вопрос SO по этому поводу, но у родительского pom есть версия SNAPSHOT, хотя это "53.0.0-SNAPSHOT" (вместо того, что я пытаюсь унаследовать, 52.0.0-SNAPSHOT) . Вы имели в виду изменение версии в родительском помпе?
Дэйв
1
Я думаю, что сообщение об ошибке не требует пояснений, если вы не знаете, что означает «список проектов реакторов». Спасибо за очень четкий ответ.
10
Было бы намного легче понять, если бы они просто добавили сообщение вроде «Вы не можете выпустить релиз». Сообщение, которое они придумывают: «У вас нет проекта SNAPSHOT в списке проектов реакторов». ... Кто когда-нибудь истолкует это послание так, как должно?
seba.wagner
9

Рабочее пространство Jenkins не очищено, или у вас есть FINALверсия внутри pom.xml. У Дженкинса есть стратегия выезда для очистки рабочего пространства.

Подробнее: Плагин выпуска Maven - необходим проект SNAPSHOT

Варианты стратегии оформления заказа:

  • Эмулируйте чистую проверку, сначала удалив неверсированные / игнорируемые файлы, а также файлы / каталоги, которые игнорируются svn:ignore, а затем выполните svn update.
  • Всегда проверяйте свежую копию
  • Используйте svn updateкак можно больше, svn revertдо обновления
МариушС
источник
Что вы имеете в виду, говоря «У Дженкинса есть возможности для очистки рабочего пространства»? Где эти варианты? Вы говорите о плагине очистки рабочего пространства для Jenkins?
Дэйв
Варианты стратегии
выезда
1
для меня это было так, после очистки рабочего пространства Дженкинса это сработало.
rbhawsar
1

Поднимите свой POM-файл проекта из ранее созданной базы кода до новой версии.

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

Г-н Нсубуга
источник
0

Изменение стратегии проверки на «Эмуляция чистой проверки путем сначала удаления неверсированных файлов / проигнорированных файлов, а затем svn update» помогло мне.

Faentur
источник