Обновление версии проекта Maven из скрипта - PullRequest
10 голосов
/ 19 августа 2010

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

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

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

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

Обновление

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

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

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

Ответы [ 2 ]

14 голосов
/ 19 августа 2010

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

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

  • versions:set можно использовать для установки версии проекта из командной строки, обновляя сведения о любых дочерних модулях по мере необходимости.1014 *
1 голос
/ 19 августа 2010

С Ссылка Maven POM :

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

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

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

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

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

...