1

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

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

这些项目中的每一个都在它自己的存储库中,它们通过 pom 文件链接,父级在标签中定义了所有三个项目,主项目将两个子模块定义为依赖项。

手头的问题:
由于主项目是我部署站点的位置(在这种情况下),我想确保在运行它时更新两个模块的源代码,这意味着我想在需要时编译两个子模块mvn install在主项目上运行。

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

知道如何解决这个问题吗?

编辑:我正在运行mvn appengine:runmain-project需要时安装子模块 A 和 B 的源

4

1 回答 1

2

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

父母

<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's 模块中的某个位置)。

有关更多信息,请参阅

于 2018-11-21T13:58:34.090 回答