运行mvn install时构建兄弟项目

时间:2018-11-21 13:45:32

标签: maven mvn-repo

我们有一个项目,最近从ant和糟糕的CLI工具切换到了maven,
我们当前的结构是:

- parent
    - main-project:
    - sub-module-A:
    - sub-module-B:

这些项目中的每个项目都在其自己的存储库中,并且它们通过pom文件链接 parent在标签中定义了所有三个项目,而main-project将两个子模块都定义为依赖项。

眼前的问题:
由于main-project是我部署站点的地方(在这种情况下),因此我想确保运行时两个模块的源都更新,这意味着我想在运行{{1}时编译两个子模块(如果需要) }在主项目上。

我尝试使用mvn-exec-plugin来构建两者,但实际上并没有构建任何东西。

有什么解决方法吗?

编辑: :我正在从mvn install运行mvn appengine:run,并希望根据需要安装子模块A和B的源代码

1 个答案:

答案 0 :(得分:2)

假设您的main-project依赖于sub-module-Asub-module-B,并且父级将所有项目都作为模块,即e。

父母

<modules>
    <module>main-project</module>
    <module>sub-module-A</module>
    <module>sub-module-B</module>
<modules>

主项目

<dependencies>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>sub-module-A</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>sub-module-B</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

然后,您可以使用以下方式构建parent项目

mvn --projects :main-project --also-make install

或对选项使用快捷方式

mvn -pl :main-project -am install

使用这些选项,仅构建main-project及其所有依赖项(位于parent的模块中)。

有关更多信息,请参见thisthis