maven: автоматическое обновление версии во всех зависимых проектах - PullRequest
1 голос
/ 04 июля 2011

Перед вопросом я хотел бы описать методологию, которую я использую.У меня есть много проектов в папке управления версиями, некоторые из которых являются проектами multi maven, некоторые из них являются отдельными пакетами, некоторые - плагинами или архетипами maven.Все банки являются снимками (в настоящее время мы не можем использовать артефакты выпуска).Так, например, приложение A1 зависело от пакета B, которое зависело от утилиты C, другое приложение A2 напрямую зависело от утилиты C. Когда я изменяю код в CI, нужно обновить его версию, а затем обновить B и A2, затем A1.Это действительно раздражает, чтобы обновлять все эти пом один раз в неделю.Поэтому я ищу какое-то автоматическое решение, которое может справиться с этим для меня (например, если у C новая версия, все зависимые модули должны быть обновлены).У любого тела есть идея?

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

PS Я думал сделать MOJO, который справится с этим, но я столкнулся с некоторыми трудностями, поскольку не у всех проектов есть общий родительский проект ...

Ответы [ 4 ]

3 голосов
/ 04 июля 2011

Похоже, что плагин версий может обрабатывать ... http://mojohaus.org/versions-maven-plugin/

2 голосов
/ 04 июля 2011

Это считается плохой практикой, но если вы разворачиваете свои проекты, используя -DupdateReleaseInfo=true (или с плагином релиза), тогда вы можете установить версию зависимости на RELEASE

<dependency>
    <groupId>some.groupid</groupId>
    <artifactId>some.artifactid</artifactId>
    <version>RELEASE</version>
</dependency>

и вы всегда получите самую последнюю версию

0 голосов
/ 01 августа 2013

Рассмотрите возможность использования механизма непрерывной интеграции для просмотра всех проектов и их построения при изменении.

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

Этого должно быть достаточно - снимокмеханизм обрабатывает остальное.

0 голосов
/ 04 июля 2011

Если вы используете только SNAPSHOT, вы всегда можете выбрать родительские проекты.Определите версии в родительском и заставьте детей расширять его.Вы также можете выбрать использование версий, таких как RELEASE или LATEST.

...