Maven Release Plugin - подготовка создает тег версии снимка вместо версии выпуска
У меня есть следующая структура проекта:
- рамки
- каркасного родитель-П
- каркасного что-то
- ...
В pom.xml framework-parent-pom я определил следующий плагин:
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<branchBase>http://.../svn/REPO/branches/framework</branchBase>
<tagBase>http://.../svn/REPO/tags/releases/framework</tagBase>
<tagNameFormat>[email protected]{project.version}</tagNameFormat>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
И после SCM:
<scm>
<developerConnection>scm:svn:http://.../svn/REPO/trunk/framework/framework-parent-pom</developerConnection>
</scm>
Когда я запускаю следующую команду...
mvn release:prepare -DautoVersionSubmodules=true -Darguments="-DskipTests" -Dresume=false
... все, кажется, идет хорошо.
Локально JAR с версией выпуска был создан, и POM хорошо обновлены до следующей версии SNAPSHOT. Также в SVN, на первый взгляд, это нормально. Тег был создан со всеми проектами инфраструктуры внутри него.
Однако при просмотре POM тега я вижу, что у них все еще есть начальная версия снимка как версия. Это, конечно, заставляет выполнить шаг по созданию версии моментального снимка, а не версии выпуска.
Что я делаю неправильно?
Ответы
Ответ 1
Я нашел обходное решение в треевом выпуске журнала maven-release-плагина MRELEASE-812:
В моем случае это изменение было:
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.2.2</version>
+ <version>2.4.1</version>
<configuration>
<releaseProfiles>release</releaseProfiles>
<goals>install animal-sniffer:check deploy site</goals>
</configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-api</artifactId>
+ <version>1.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-gitexe</artifactId>
+ <version>1.8.1</version>
+ </dependency>
+ </dependencies>
</plugin>
Ответ 2
У меня тоже была такая же проблема. В моем случае это произошло из-за неправильной строки SCM DeveloperConnection.
<scm>
<developerConnection>scm:svn:http://.../../trunk</developerConnection>
</scm>
У меня есть ckeckout код из Branch и выполняется release: подготовьте.
вы можете проверить свой путь разработчика, он должен совпадать с вашим репозиторием кода.
Ответ 3
У меня была аналогичная проблема. Это была маркировка версии моментального снимка, потому что она не выполняла изменения POM перед пометкой.
Я обнаружил, что это будет работать, только если я использовал следующие параметры конфигурации:
<remoteTagging>false</remoteTagging>
<suppressCommitBeforeTag>false</suppressCommitBeforeTag>
Ответ 4
Если вы столкнулись с этой проблемой, скорее всего, вы испытываете https://jira.codehaus.org/browse/MRELEASE-812 и вам нужно будет изменить версию плагина выпуска (или git), которые вы используете.
НТН,
Ян
Ответ 5
Эта проблема по-прежнему не решена для сложной структуры проекта.
См. здесь для предварительного просмотра патча:
http://jira.codehaus.org/browse/SCM-740
Ответ 6
Если вы видите эту ошибку с версией 2.5 плагина релиза maven, вы можете столкнуться с этой ошибкой: http://jira.codehaus.org/browse/MRELEASE-875
Если ваш pom.xml верхнего уровня не находится в корне git, тогда release:prepare
не фиксирует pom перед пометкой.
Единственная работа, похоже, состоит в том, чтобы перестроить структуру проекта в git.
Ответ 7
У меня была точно такая же проблема при разрезании моего первого релиза (что было действительно грязно).
Во второй раз эта проблема исчезла - так что просто сделайте второй (чистый/свежий) выпуск.
Ответ 8
У меня была та же проблема. Я обошел эту проблему, вручную отредактировав тег POM, чтобы установить его в выпущенную версию. Тогда релиз: выполнить хотя бы работу.
Но это странная проблема, что я не знаю, откуда она.
Ответ 9
В качестве обходного пути вы можете также git config --global status.displayCommentPrefix true
выводить в старом формате, чтобы maven мог разобрать команду git status
.
Ответ 10
только для записей, единственным обходным путем, который работал у меня, было обходное решение Андреаса Дангеля о добавлении конфигурации git для установки старого поведения анализа локализованного вывода git, команда - это
git config --add status.displayCommentPrefix true
вот объяснение обходного пути: http://jira.codehaus.org/browse/SCM-740?focusedCommentId=341325&page=com. atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # комментарий-341325
один последний намек, это обходное решение работает только для версии 2.4.2, я тестировал с 2.5 и не работает
Ответ 11
Эта проблема устранена с помощью комбинации Maven 3.2.2 и Maven Release Plugin 2.5.