Прежде всего, у меня есть какое-то понимание, что приведенный ниже способ может быть не общепринятым.
У нас есть проект Maven 2, номер версии которого должен обновляться примерно каждую неделю во время выхода нового выпуска. Во время этого процесса я попытался избавиться от всего, что нужно помнить, и создал сценарий bash, который обрабатывает этот процесс в интерактивном режиме.
Однако моя проблема заключается в обновлении версии pom из командной строки. Я могу сделать это с помощью sed, но не думаю, что это очень удобно.Мне было интересно, есть ли какой-либо плагин maven, который мог бы изменять pom.xml непосредственно из командной строки. Версия устанавливается в разделе свойств файла pom. Можно ли написать плагин, который изменял бы свойства?
Заранее спасибо.
Обновление
Похоже, что моя проблема была связана с версиями проекта, определенными как свойства (которые применялись при фильтрации), что теперь кажется немного глупым.
Я все еще ищу ответ на вопрос, как надежно загрузить версию определенного проекта в командную строку. Раньше у меня было «довольно уникальное» свойство, которое я получил с помощью grep
, но теперь элемент
не является уникальным, поскольку в дочернем проекте их как минимум два. Если у Maven нет решений, мне понадобится какой-то синтаксический анализатор XML, но моя цель - сделать скрипт как можно более независимым.
Я не уверен, что мне следовало создавать из этого новый вопрос, но я этого не сделал. Получение версии очень тесно связано с установкой версии.
Мне было интересно, есть ли какой-нибудь плагин maven, который мог бы изменять pom.xml прямо из командной строки.
Плагин Maven Versions может это сделать. Проверьте следующую цель:
версии: set
можно использовать для установки версии проекта из командной строки, при необходимости обновляя сведения о любых дочерних модулях. 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>
Вы можете обновлять эту переменную окружения каждую неделю, перед запуском сборки.
Надеюсь, это вам поможет.