У меня есть два проекта: родительский проект: A, суб-проект: B
A / pom.xml:
<groupId>com.dummy.bla</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
И в B / pom.xml у меня есть:
<parent>
<groupId>com.dummy.bla</groupId>
<artifactId>parent</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>
<groupId>com.dummy.bla.sub</groupId>
<artifactId>kid</artifactId>
Я хочу, чтобы B наследовал версию от parent, поэтому единственное место в моем случае, которое мне нужно поставить, 0.1-SNAPSHOT
- это A/pom.xml
. Но если я удаляю <version>0.1-SNAPSHOT</version>
из- B/pom.xml
под родительского раздела, maven жалуется на отсутствующую версию для родителя.
Есть ли способ, которым я могу просто воспользоваться, ${project.version}
или что-то подобное, чтобы избежать попадания 01.-SNAPSHOT
в оба насоса?
inheritance
maven
Shengjie
источник
источник
Ответы:
РЕДАКТИРОВАТЬ: Начиная с Maven 3.5.0 есть хорошее решение для этого с помощью
${revision}
заполнителя. Смотрите ответ FrVaBe для деталей. Для предыдущих версий Maven см. Мой оригинальный ответ ниже.Нет, нет Вы всегда должны указывать версию родителя. К счастью, это наследуется как версия модуля, что желательно в большинстве случаев. Более того, объявление версии этого родительского элемента автоматически обновляется плагином релиза Maven, поэтому, на самом деле, не проблема в том, что у вас есть версия в двух местах, если вы используете плагин релиза Maven для выпуска или просто изменения версий.
Обратите внимание, что есть некоторые случаи, когда это поведение на самом деле довольно хорошо и дает больше гибкости, которая может вам понадобиться. Иногда вы хотите использовать некоторые из версий предыдущего родителя для наследования, однако это не основной случай.
источник
${revision}
заполнитель для этого. Смотрите мой ответ ;-)