Прежде всего, у меня есть какое-то понимание того, что следующее не может быть общепринятым способом делать что-то.Обновление версии проекта Maven из сценария
У нас есть проект Maven 2, который имеет номер версии, который должен обновляться каждую неделю или около того, во время новой версии. Во время этого процесса я попытался устранить все, что нужно запомнить, и я создал сценарий bash, который обрабатывает процесс в интерактивном режиме.
Однако моя проблема заключается в обновлении версии pom из командной строки. Я могу сделать это с помощью sed, но я не думаю, что это очень удобно. Мне было интересно, есть ли какой-либо плагин maven, который мог бы изменить pom.xml непосредственно из командной строки. Версия устанавливается в разделе свойств pom. Можно ли написать плагин, который изменит свойства?
Заранее спасибо.
Update
Кажется, что моя проблема была с версиями проекта определяется как свойствами (которые были применены при фильтрации), который кажется теперь немного глупо.
Одна вещь, которую я все еще ищу, - это то, как надежно получить версию определенного проекта в командной строке. Раньше у меня было свойство «довольно уникальное», которое я получил с помощью grep
, но теперь элемент <version>
не уникален, так как в дочернем проекте есть по крайней мере два из них. Мне нужен какой-то XML-парсер, если у Maven нет решений, но моя цель - сделать скрипт как можно более независимым.
Я не уверен, должен ли я создать новый вопрос из этого, но я этого не сделал. Получение версии очень тесно связано с настройкой версии.
Спасибо! Я сам нашел этот плагин, но почему-то не понял, что плагин действительно может обновить pom.xml, а не просто отображать зависимости и т. Д. Установка версии не работает, так как версия определена в родительском пом в качестве свойства, о котором я и не подозревал. Тем не менее, я обнаружил, что есть цель «update-properties», которая может сделать трюк. – mkko
Очевидно, что «свойства обновления» предназначены только для обновления зависимостей, а не для установки каких-либо значений. «version: set» - это ближайшее совпадение, но, похоже, нет способа определить версию в родительском pom таким образом - или, по крайней мере, как свойство. – mkko
@mkko: 1. Вы на самом деле ** должны ** жестко закодировать версию в родительском POM и в элементах дочерних модулей '', см. [MNG-624] (http://jira.codehaus.org/browse/MNG-624) для исчерпывающих обсуждений по этому вопросу 2. Зависимости должны использовать встроенное свойство '$ {project.version}', нет веской причины использовать свойство для этой версии. Вот как это работает с Maven. 3. И тогда вы сможете использовать 'versions: set' (но это косвенное следствие того, что все правильно). –