Мы оптимизируем нашу конфигурацию Maven (из ранее использовавшегося муравья), и я только что прочитал книгу Maven by Example от Sonatype.Дублирование конфигураций приводило нас к проблемам в прошлом, поэтому я абсолютно хочу избежать даже малейшего из этого.
В вышеприведенной книге упоминается использование встроенных свойств project.groupId и project.version изродительский модуль, когда ссылается на другие подмодули одного и того же уровня как на зависимости:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>model</artifactId>
<version>${project.version}</version>
</dependency>
Это прекрасно работает, мне это нравится.Но это не работает в теге подмодуля pom.xml:
<parent>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
Полагаю, ничего страшного, кажется, я могу создать свойства для них, но со многими модулями мне бы очень хотелосьчтобы полностью понять лучшие практики для такого рода проблем ..
ОБНОВЛЕНИЕ На данный момент лучший способ сделать это заключается в следующем.Немного некрасиво, но устраняет дубликаты жестко закодированных значений.parent pom.xml:
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<packaging>pom</packaging>
<version>${version}</version>
<properties>
<groupId>com.mycompany</groupId>
<artifactId>mycompany</artifactId>
<version>1.0</version>
</properties>
child pom.xml:
<parent>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>child</artifactId>