Обновление версии проекта Maven из сценария

Прежде всего, у меня есть какое-то понимание, что приведенный ниже способ может быть не общепринятым.

У нас есть проект Maven 2, номер версии которого должен обновляться примерно каждую неделю во время выхода нового выпуска. Во время этого процесса я попытался избавиться от всего, что нужно помнить, и создал сценарий bash, который обрабатывает этот процесс в интерактивном режиме.

Однако моя проблема заключается в обновлении версии pom из командной строки. Я могу сделать это с помощью sed, но не думаю, что это очень удобно.Мне было интересно, есть ли какой-либо плагин maven, который мог бы изменять pom.xml непосредственно из командной строки. Версия устанавливается в разделе свойств файла pom. Можно ли написать плагин, который изменял бы свойства?

Заранее спасибо.

Обновление

Похоже, что моя проблема была связана с версиями проекта, определенными как свойства (которые применялись при фильтрации), что теперь кажется немного глупым.

Я все еще ищу ответ на вопрос, как надежно загрузить версию определенного проекта в командную строку. Раньше у меня было «довольно уникальное» свойство, которое я получил с помощью grep , но теперь элемент не является уникальным, поскольку в дочернем проекте их как минимум два. Если у Maven нет решений, мне понадобится какой-то синтаксический анализатор XML, но моя цель - сделать скрипт как можно более независимым.

Я не уверен, что мне следовало создавать из этого новый вопрос, но я этого не сделал. Получение версии очень тесно связано с установкой версии.

10
задан mkko 20 August 2010 в 08:40
поделиться

2 ответа

Мне было интересно, есть ли какой-нибудь плагин maven, который мог бы изменять pom.xml прямо из командной строки.

Плагин Maven Versions может это сделать. Проверьте следующую цель:

  • версии: set можно использовать для установки версии проекта из командной строки, при необходимости обновляя сведения о любых дочерних модулях.
14
ответ дан 3 December 2019 в 22:34
поделиться

Из Maven POM reference:

env.X: Prefixing a variable with "env." вернет переменную оболочки переменную окружения. Например, ${env.PATH} содержит PATH переменную окружения. Примечание: Хотя переменные окружения сами по себе нечувствительны к регистру в Windows, поиск свойства чувствительны к регистру. Другими другими словами, в то время как оболочка Windows возвращает одно и то же значение для %PATH% и %Path%, Maven различает ${env.PATH} и ${env.Path}. Начиная с версии Maven 2.1.0, имена переменных окружения переменных нормализованы до верхнему регистру в целях надежности.

Это означает, что вы можете иметь переменную окружения типа $MYMAVENPROJECTVERSION и читать ее следующим образом:

<version>${env.MYMAVENPROJECTVERSION}</version>

Вы можете обновлять эту переменную окружения каждую неделю, перед запуском сборки.

Надеюсь, это вам поможет.

1
ответ дан 3 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

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