Должен ли я сам позаботиться обо всех версиях модуля или есть плагин, который может выполнить необходимую работу за меня?
Что ж, если вы не хотите синхронизировать версии различных артефактов (проектов, библиотек) с версией, определенной в all/pom.xml
(т.е. просто наследовать ее по всей иерархии), боюсь, вы Придется начинать управлять ими вручную. Я просто не уверен, что пойму, почему вы не измените версию скажем lib2
, даже если вы ничего не изменили. С вашей текущей структурой svn-репозитория все артефакты так или иначе имеют жизненный цикл релиза (когда вы пометите ствол, вы пометите все в нем).
Теперь, если p1
и p2
(для простоты я буду игнорировать библиотеки) имеют независимый цикл выпуска , я бы порекомендовал несколько "trunk / tags / branch" структура, как описано в этой теме :
myrepo
+ .links (2)
+ trunks
+ pom.xml
+ parent-pom (1)
+ trunk
+ pom.xml
+ project-A
+ trunk
+ pom.xml
+ project-B
+ trunk
+ pom.xml
1) Родительское ПОМ проекта имеет
собственный цикл выпуска. каждый
POM компонента будет использовать его как родительский
(ссылка просто с groupId
и
artifactId
, нет relativePath
). За
релиз, который вы должны выпустить
родитель POM первым.
2) Это конструкция для включения
легко проверить выходы конкретной отрасли
проекта, то есть обычно
хобот. Пользователь Subversion проверяет
myrepo / .links / trunk чтобы получить голову
пересмотр всех источников. Хитрость в том,
что этот каталог содержит
внешние ссылки (т.е. с
svn:externals
собственности) к
стволы всех других модулей этого
проект (родитель-пом, проект-А,
Проект-Б). Pom.xml в этом
каталог никогда не выпускается, это
содержит просто раздел модулей для
три модуля, чтобы включить мульти
сборка модуля. С этой конструкцией
Вы можете легко настроить филиалы
e.g.:
myrepo
+ .links
+ branch-2.x
+ pom.xml
Я использовал эту настройку много раз (я уже писал об этом здесь, в SO, см. Соответствующие вопросы ниже), она работает очень хорошо. На самом деле, многие проекты, в том числе Maven, используют этот подход, он не фантастический.
Это не решит вашу «автоматическую» обработку версий (я не знаю никакого решения для этого), но, по крайней мере, эта структура прекрасно работает с Maven Release Plugin и будет поддерживать ваш независимый цикл выпуска требования.
Смотри также
Смежные вопросы