У меня есть проект мультимодуля.
parent POM (1.0-SNAPSHOT) |-- module1 (1.0-SNAPSHOT) |-- module2 (1.0-SNAPSHOT) `-- module3 (1.0-SNAPSHOT)
Когда я выполняю mvn release:prepare, он проверяет, что у родительского АНГЛИЧАНИНА есть версия СНИМКА, и все зависимые модули не имеют версии СНИМКА. Как автоматически обновляют все дочерние модули от СНИМКА до следующей версии выпуска?
Я хотел бы автоматически инкрементную версию за все модули.
Плагин выпуска может с этим справиться. Вы проверяли Обновление версий POM ? Но ...
Я чего-то не понимаю. Изменение версии в POM с x-SNAPSHOT на новую версию и повышение версии в POM до нового значения y-SNAPSHOT должно быть выполнено к выпуску : подготовка
, как описано в Подготовка выпуска . Что происходит не так при использовании этой цели?
Обновление: Возможно, вы ищете параметр autoVersionSubmodules
. Из примера Подготовка релиза :
Многомодульные проекты
Вам будет предложено ввести номер версии для каждого модуля проекта. Если вы предпочитаете, чтобы каждый модуль имел ту же версию, что и родительский POM, вы можете установить для параметра
autoVersionSubmodules
значениеtrue
. Теперь вам будет предложено только один раз указать окончательную версию и следующую разрабатываемую версию.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>x.y.z</version>
<configuration>
<goals>deploy</goals>
<autoversionsubmodules>true</autoversionsubmodules>
</configuration>
</plugin>
</plugins>
</build>
Есть потенциально лучший вариант по адресу https://issues.apache.org/jira/browse/MNG-624?focusedCommentId=14415968&page=com.atlassian.jira.plugin.system.issuetabpanels:comment- tabpanel # comment-14415968
Это обходной путь для того факта, что вы не можете ссылаться на pom верхнего уровня в poms подмодуля, не указав явную версию. (о чем и говорит ошибка MNG-624) В нем объясняется, как вы можете иметь единственное местоположение для версии (в файле profiles.xml верхнего уровня) и просто иметь ссылки на свойства во всех файлах pom.xml (т. Е. $ {CurrentVersion})
Однако в эта схема release: prepare, вероятно, не обновит для вас файл profiles.xml.