How can I build the dependent projects when a child project is getting build by maven. As an example, I have 2 projects call A,B. Project B is depending on project A. I want to build the project A when I am building project B with maven. How should I do it?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Take a look at these options that can be passed to mvn:
Options:
-am,--also-make If project list is specified, also
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
I believe in your case you have to use -amd
Edit: In case you need to do it through a pom. You just need to create another module say C, that just lists the sub modules A and B. And when you build C, the maven reactor will automatically build both.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>ParentModuleC</artifactId>
<packaging>pm</packaging>
<version>1.0-SNAPSHOT</version>
<name>ParentModuleC</name>
<dependencies>
</dependencies>
<build>
</build>
<modules>
<module>ModuleA</module>
<module>ModuleB</module>
</modules>
</project>
In the ModuleA and B you need to add this:
<parent>
<groupId>com.test</groupId>
<artifactId>ParentModuleC</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
And your directory structure will look like this:
ParentModuleC
|-pom.xml
|----------->ModuleA
| |->pom.xml
|----------->ModuleB
| |->pom.xml
Have a look at this for a simple example: http://books.sonatype.com/mvnex-book/reference/multimodule.html