当使用Maven构建子项目时,如何同时构建依赖项目。例如,我有两个项目A、B,项目B依赖于项目A。我想在构建项目B时自动构建项目A。应该如何操作?
当使用Maven构建子项目时,如何同时构建依赖项目。例如,我有两个项目A、B,项目B依赖于项目A。我想在构建项目B时自动构建项目A。应该如何操作?
看一下可以传递给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
我认为在你的情况下,你需要使用-amd。
编辑: 如果你需要通过pom文件来执行操作,你只需要创建另一个模块,比如说C,将子模块A和B列出即可。当你构建C时,Maven反应堆将自动构建这两个子模块。
<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>
在 ModuleA 和 B 中,您需要添加以下内容:<parent>
<groupId>com.test</groupId>
<artifactId>ParentModuleC</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
你的目录结构将看起来像这样:
ParentModuleC
|-pom.xml
|----------->ModuleA
| |->pom.xml
|----------->ModuleB
| |->pom.xml
看这个简单的例子: http://books.sonatype.com/mvnex-book/reference/multimodule.html
amd
但在依赖于多模块概念的提议解决方案中并没有使用。你应该要么删除对amd
的引用,要么解释为什么它在这种情况下不适用,因为否则可能会误导。 - davidxxx