【问题标题】:Create aggregate POM for different projects为不同项目创建聚合 POM
【发布时间】:2019-08-21 18:42:37
【问题描述】:

我想为不同的模块创建一个聚合 pom,以便它可以作为一个大型 maven 项目处理。

ModuleA:web 应用,有一个 pom.xml,其父级设置为 Spring boot

ModuleB:简单的 java 应用程序(与 ModuleA 的依赖关系不同)

Project/
  ModuleA/
    pom.xml  <-- parent is set to spring
  ModuleB/
    pom.xml  <-- no parent
  pom.xml    <-- aggregate pom to create

这是我尝试过的聚合 pom:

<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>group</groupId>
    <artifactId>Project</artifactId>
    <version>1</version>
    <packaging>pom</packaging>

    <name>Project</name>

    <modules>
        <module>ModuleA</module>
        <module>ModuleB</module>
    </modules>
</project>

问题是当我尝试在项目级别运行 maven 命令时,我收到警告:

[WARNING] Some problems were encountered while building the effective model for group:ModuleA:war:0.0.1
[WARNING] 'parent.relativePath' of POM group:ModuleA:0.0.1 (C:\Project\ModuleA\pom.xml) points at group:Project instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure @ group:ModuleA:0.0.1, C:\Project\ModuleA\pom.xml

当我不想从聚合 pom 继承任何东西时,这真的是个问题吗?

【问题讨论】:

    标签: java maven pom.xml parent-pom


    【解决方案1】:

    正如herehere 解释的那样,取消设置每个项目/模块pom.xml 父元素中的relativePath,因为您的主项目只是用于聚合项目(而不是模块引用的父项)

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
        <relativePath/>                                      <=========
    </parent>
    

    【讨论】:

    • 谢谢。当relativePath 在主项目中not 未设置时,您能否提供更多关于此设置中发生的情况的信息? (在某些方面这可能会导致未来出现问题等?)
    • @user 模块正在尝试在父文件夹中查找其声明父级的 pom:请参阅 stackoverflow.com/a/45545772/6309
    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多