Устранить избыточность Maven POM - PullRequest
4 голосов
/ 08 июля 2010

У меня есть родительский POM со следующим конфигом

<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.2-SNAPSHOT</version>

Каждый дочерний проект, который наследуется от этого родительского POM, имеет следующую конфигурацию:

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
    <version>1.2-SNAPSHOT</version>
</parent>

Я хочу, чтобы все эти номера версий проекта были синхронизированы. На данный момент, если я изменю родительскую версию на 1.3, мне придется изменить все версии дочернего проекта на 1.3. Можно ли как-нибудь избежать дублирования номеров версий во всех дочерних проектах?

Я попытался заменить вышеприведенное на

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
</parent>

и

<parent>
    <groupId>com.amadeus.jcp.ui.skinning.skinning-system</groupId>
    <artifactId>parent</artifactId>
    <version>${project.version}</version>
</parent>

Но ни одна из этих работ. Я использую Maven версии 2.1.0.

Спасибо, Дон

Ответы [ 2 ]

3 голосов
/ 08 июля 2010

Я пытался заменить вышеперечисленное на (...) и (...), но ни одна из этих работ не работает. Я использую Maven версии 2.1.0.

Не возможно. В Maven 2.x вы должны объявить элемент parent в дочернем модуле, а элемент parent должен включать жестко запрограммированный version (вы не можете его опустить и не можете использовать свойство, см. этот предыдущий ответ и MNG-624 ).

Однако Maven 3.1 будет поддерживать родительские элементы без версии (см. этот предыдущий ответ ).

Между тем, некоторые плагины могут сделать обслуживание немного проще, например, Плагин релиза Maven или Версии Maven Плагин и его versions:set или versions:update-child-modules голов.

0 голосов
/ 08 июля 2010

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

+--- root
      +--- pom.xml (Parent)
      +--- module1
             +-- pom.xml (child 1)

Вы также должны определить относительный путь в своих дочерних элементах какхорошо ...

<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.2-SNAPSHOT</version>
    <relativePath>../pom.xml</version>
</parent>
<groupId>...</groupId>
<artifactId>...</artifactId>

Если вы сделали это, вы никогда не должны менять номер версии вручную у своего родителя ... пусть плагин релиза сделает свою работу, он изменит записи версий у всех потомков (родителей)) Appropietaley ... если вам действительно нужно что-то изменить, иногда используйте maven-version-plugin ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...