Обновление версии проекта Maven из скрипта
Прежде всего, у меня есть какое-то понимание, что следующее не может быть общепринятым способом сделать что-то.
У нас есть проект Maven 2, у которого есть номер версии, который должен обновляться каждую неделю или около того, во время новой версии. В ходе этого процесса я попытался исключить все, что нужно помнить, и создал сценарий bash, который обрабатывает этот процесс в интерактивном режиме.
Тем не менее, моя проблема заключается в обновлении версии POM из командной строки. Я могу сделать это с помощью sed, но я не думаю, что это очень удобно. Мне было интересно, есть ли какой-нибудь плагин maven, который сможет изменить pom.xml непосредственно из командной строки. Версия указана в разделе свойств pom. Можно ли написать плагин, который бы изменил свойства?
Заранее спасибо.
Обновить
Кажется, что моя проблема была с версиями проекта, определенными как свойства (которые были применены при фильтрации), который теперь кажется немного глупым.
Единственное, что я до сих пор ищу ответ, - как надежно получить версию определенного проекта в командной строке. Ранее у меня было "довольно уникальное" свойство, которое я использовал grep
, но теперь <version>
Элемент не является уникальным, так как в дочернем проекте есть как минимум два из них. Мне понадобится какой-то синтаксический анализатор XML, если у Maven нет решений, но моя цель - сделать скрипт как можно более независимым.
Я не уверен, должен ли я создать новый вопрос из этого, но я не сделал. Получение версии очень тесно связано с настройкой версии.
2 ответа
Мне было интересно, есть ли какой-нибудь плагин maven, который сможет изменить pom.xml непосредственно из командной строки.
Плагин Версии Maven может сделать это. Проверьте следующую цель:
versions:set
может использоваться для установки версии проекта из командной строки, обновляя детали любых дочерних модулей по мере необходимости.
env.X: префикс переменной с "env." вернет переменную окружения оболочки. Например, ${env.PATH} содержит переменную среды PATH. Примечание. Хотя сами переменные среды не чувствительны к регистру в Windows, поиск свойств учитывает регистр. Другими словами, в то время как оболочка Windows возвращает одинаковое значение для%PATH% и%Path%, Maven различает $ {env.PATH} и ${env.Path}. Начиная с Maven 2.1.0, имена переменных среды нормализуются в верхнем регистре для надежности.
Это означает, что вы можете иметь переменную окружения, такую как $MYMAVENPROJECTVERSION, и читать ее так:
<version>${env.MYMAVENPROJECTVERSION}</version>
Вы можете обновлять эту переменную среды каждую неделю перед запуском сборки.
Надеюсь, что это поможет вам.