У меня есть многомодульный проект с иерархией ниже:
parent-build
проект pom.xml
...
<groupId>com.my.project</groupId>
<artifactId>parent-build</artifactId>
<packaging>pom</packaging>
<name>parent-build</name>
<version>${version.product}</version>
<properties>
<version.product>1.0</version.product>
</properties>
...
build-all
проект pom.xml
...
<parent>
<artifactId>parent-build</artifactId>
<groupId>com.my.project</groupId>
<version>${version.product}</version>
<relativePath>../parent-build/pom.xml</relativePath>
</parent>
<groupId>com.my.project</groupId>
<packaging>pom</packaging>
<modules>
<module>../child-1</module>
<module>../child-2</module>
</modules>
...
child-2
проект pom.xml
...
<parent>
<artifactId>parent-build</artifactId>
<groupId>com.my.project</groupId>
<version>${version.product}</version>
<relativePath>../parent-build/pom.xml</relativePath>
</parent>
<groupId>com.my.project</groupId>
<artifactId>child-2</artifactId>
<packaging>jar</packaging>
<version>${version.product}</version>
...
<dependencies>
<dependency>
<groupId>com.my.project</groupId>
<artifactId>child-1</artifactId>
<version>${version.product}</version>
</dependency>
...
</dependencies>
...
child-1
проект pom.xml
...
<parent>
<artifactId>parent-build</artifactId>
<groupId>com.my.project</groupId>
<version>${version.product}</version>
<relativePath>../parent-build/pom.xml</relativePath>
</parent>
<groupId>com.my.project</groupId>
<artifactId>child-1</artifactId>
<packaging>jar</packaging>
<version>${version.product}</version>
...
Я хочу собрать все банки с одинаковой версией, и эта версия должна быть указана в одном месте. Я объявил свойство в родительской сборке pom.xml
Теперь, когда я делаю mvn clean install
в проекте build-all, он строит все проекты в указанном порядке модулей. Это нормально.
Но в некоторых случаях я хочу построить только проект child-2
.
то есть, скажем, я делаю некоторые изменения в проекте child-2 и хочу построить только этот проект. Проблема с этим сценарием в том, что он не может найти значение свойства version.product
Редактировать:
Ниже приведена ошибка, которую я получаю при создании проекта child-2.
Could not transfer artifact com.my.project:parent-build:pom:${version.product} from/to central (http://repo1.maven.org/maven2): Illegal character in path at index 66: http://repo1.maven.org/maven2/com/my/project/parent-build/${version.product}/parent-build-${version.product}.pom
Пожалуйста помоги.
Заранее спасибо.
<module>../child1</module>
в<module>child1</module>
.. Если вы хотите построить дочерний элемент в одиночку, вы можете вызвать maven черезmvn -pl child1
из корня. - person khmarbaise   schedule 18.01.2017