当前位置: 首页 > 面试题库 >

如何使用父模块使子模块的Maven构建?

微生新霁
2023-03-14
问题内容

我的项目中有多个模块,它们直接或可传递地相互依赖。当我构建«Project A»时,有些地方«Project D»会自动构建。

Project A > Project B  > Project C > Project D

where > means Project B depends on Project A

«Project D»pom片段是:

<project xmlns="...">
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.myProduct</groupId>
    <artifactId>build-MyProjectD</artifactId>
    <name>MyProjectD</name>
    ........
</project>

在构建«Project A»时会自动构建«Project B»,根据我的理解,build- MyProjectD应该在其中一个项目中添加某个地方作为依赖项,Project A > Project B > Project C但是build- MyProjectD在这些项目的pom下我没有发现任何字符串引用。

知道在没有子项目artifactId出现在上游项目的情况下,还有什么其他方法可以构建子模块(在本例中为“项目D”)吗?


问题答案:

您需要创建一个聚合器项目。有关聚合概念的更多信息,请参见链接。

基本上,您将创建一个包含多个“模块”的父项目。生成父级时,模块也会自动生成。

如果您声明模块之间的依赖关系,则Maven将以正确的顺序自动构建不同的模块,以便如果«Project A»依赖于«Project
B»,则首先构建«Project B»,然后构建«Project A»,以便它的工件可用于构建第二个工件。

另请参阅Maven的FAQ中的这个问题。



 类似资料:
  • 我有一个spring boot项目,由maven构建。我必须使用父项目中包含的目录进行子项目中的集成测试。(Liquibase变更日志文件。) 在子模块的测试资源下复制它的最佳做法是什么? 因此,我想将我在集成测试中使用的my_directory复制到child/src/main/test/resources下。你知道从孩子的pom.xml中做这件事的最佳做法是什么吗?

  • 我将转向maven多模块构建。 我的项目结构如下所示: 是一个Maven Eclipse项目,由M2E构建。 我添加了MyProject-Core/src/main/java作为Eclipse源文件夹,但由于我将父pom中的依赖项部分更改为dependencyManagement,因此我从Eclipse中得到了构建错误。手动调用mvn包仍然可以正常工作。 如何配置Eclipse以正确解决核心pom

  • 我有一个包含多个模块的项目,与Maven中的常见项目一样,

  • 我有一个Jenkins/Maven/Git多模块项目,其中包含一个子模块(由承包商开发,没有什么可以改变它)。由于Git和子模块,我必须使用命令“Git Clone-recursive ssh://xxxxxxx.Git”在Linux中克隆repo。 这意味着我必须检查Jenkins Git插件选项“Advanced sub-modules Behavious”和“recursivy update

  • 我喜欢在maven中通过创建模块来配置我的应用程序,比如; 然后模块使用'example-app'作为父模块。 我面临的问题是你必须用Spring靴做父母。

  • 问题内容: 我有一个父项目多模块Maven项目P和三个子模块,和。这两个和是战项目,都依赖于A。 我可以输入在和拥有所有的子模块正确的编译的。当我要对特定模块进行操作时,问题就来了。 我希望能够为项目打包战争,但是当我从的目录运行命令时,它抱怨找不到的依赖项。 我从这个问题中了解到:Maven和相关模块,也许Maven并不是真正为这种类型的依赖关系解决而设计的,但这引出了我该如何打包的问题? 当我