В проекте Знатока, как я могу автоматически обновить версию все дочерние модули плюс родитель?

У меня есть проект мультимодуля.

parent POM (1.0-SNAPSHOT)
|-- module1 (1.0-SNAPSHOT)
|-- module2 (1.0-SNAPSHOT)
`-- module3 (1.0-SNAPSHOT)

Когда я выполняю mvn release:prepare, он проверяет, что у родительского АНГЛИЧАНИНА есть версия СНИМКА, и все зависимые модули не имеют версии СНИМКА. Как автоматически обновляют все дочерние модули от СНИМКА до следующей версии выпуска?

Я хотел бы автоматически инкрементную версию за все модули.

33
задан Peter Mularien 14 March 2013 в 18:44
поделиться

2 ответа

Плагин выпуска может с этим справиться. Вы проверяли Обновление версий POM ? Но ... Я чего-то не понимаю. Изменение версии в POM с x-SNAPSHOT на новую версию и повышение версии в POM до нового значения y-SNAPSHOT должно быть выполнено к выпуску : подготовка , как описано в Подготовка выпуска . Что происходит не так при использовании этой цели?

Обновление: Возможно, вы ищете параметр autoVersionSubmodules . Из примера Подготовка релиза :

Многомодульные проекты

Вам будет предложено ввести номер версии для каждого модуля проекта. Если вы предпочитаете, чтобы каждый модуль имел ту же версию, что и родительский POM, вы можете установить для параметра autoVersionSubmodules значение true . Теперь вам будет предложено только один раз указать окончательную версию и следующую разрабатываемую версию.

Фрагмент родительского файла pom.xml

<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>
30
ответ дан 27 November 2019 в 18:08
поделиться

Есть потенциально лучший вариант по адресу 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.

3
ответ дан 27 November 2019 в 18:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: