Обновите свойства maven после новой версии, используя плагин версии
У меня проблема с многомодульным проектом в maven/jenkins. Например, моя структура выглядит так:
---ProjectA
----pom.xml
--------ModuleA
---------pom.xml
--------ModuleB
---------pom.xml
---ProjectB
-----pom.xml
Например, у ModuleA есть зависимость для чего-то в ProjectB, которая определена в pom ModuleA, за исключением версии, которая определена только как свойство, и я унаследован от раздела свойств ProjectA.
Я хочу автоматизировать процесс выпуска, чтобы избавиться от ручного обновления версий во всех poms. Таким образом, после того, как я выпустил ProjectB, мне нужно все ссылки в ProjectA.
РЕДАКТИРОВАТЬ Точнее, я хочу выпустить ProjectB, который должен включать выпуск ProjectA (из-за зависимостей), а в новых Снимках ProjectA я хочу ссылки на новейший ProjectB.
Версии плагинов maven делают это довольно хорошо, если в одном и том же pom указать зависимость и номер версии. Моя проблема, как вы можете видеть, состоит в том, что (я размышляю), когда плагин версии пытается проверить поле свойства в pom ProjectA, свойство не может быть связано с зависимостью. И я прошу, чтобы плагин версий смотрел на эффективный pom, потому что он МОЖЕТ найти, что зависимость в pom ModuleA должна быть обновлена. Он просто не может обновить его из-за того, что он там не определен.
Был бы очень признателен за решение, которое могло бы сохранить мои свойства в родительском пом.
Спасибо
1 ответ
Хорошо. Так что я думаю, что я что-то решил, но я опубликую это здесь, чтобы другие могли увидеть.
Таким образом, проблема в том, что autoLinkItem ищет только текущий файл на предмет связывания, и если вы хотите, чтобы свойство связывалось с зависимостью, не указанной в том же файле, можно явно указать плагину в этом.
Как это:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<properties>
<property>
<name>basis.version</name>
<dependencies>
<dependency>
<groupId>com.mycompany.app.basis</groupId>
<artifactId>ModuleBasis</artifactId>
</dependency>
</dependencies>
</property>
</properties>
<includeProperties>basis.version</includeProperties>
<generateBackupPoms>false</generateBackupPoms>
<allowSnapshots>true</allowSnapshots>
</configuration>
</plugin>