如何在maven中编译依赖?

SQC*_*SQC 15 maven

场景:

我有一个主级项目A和A,两个子项目B和C由不同的开发人员工作,但他们同意通过通用接口的抽象.

B取决于C(依赖性).在B的pom我添加了

<dependency> .. details of project C..</dependency> .
Run Code Online (Sandbox Code Playgroud)

这样做,maven插入依赖项很好,除了不重新编译项目C.

我希望项目C在每次编译时自动重新编译.

小智 19

如果你想构建B并自动构建它的依赖项,你可以使用maven reactor的高级选项,如--also-make-dependents.

mvn clean install –-projects B –-also-make 
Run Code Online (Sandbox Code Playgroud)

或者简短

mvn clean install -pl B -am
Run Code Online (Sandbox Code Playgroud)

这将编译B所依赖的A的所有子模块.关于maven reactor的高级选项,sonatype博客上有一篇有用的文章. http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/


Abh*_*kar 9

将项目B和C列为项目Pom中的模块A.现在,当您构建项目A时,它应该以正确的顺序自动构建项目B和C.

<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>multi</groupId>
    <artifactId>A</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>

    <modules>
        <module>B</module>
        <module>C</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

一个多模块Maven项目的例子.