Maven 继承、聚合和父子结构的创建
发布日期:2025-04-12 17:45:18 浏览次数:8 分类:精选文章

本文共 2005 字,大约阅读时间需要 6 分钟。

Maven 继承与聚合

一、继承

1. 继承的基本概念

继承在 Maven 中是指子项目(模块)继承父项目的配置,通常用于版本管理和依赖管理。与依赖传递不同,继承不需要关心父项目的 compile scope。

2. 如何配置继承

  • 父项目配置:创建一个父项目(Parent Project),打包类型设置为 pom,并在其 POM 中定义依赖。
  • 子项目配置:子项目可以选择性地声明 groupId 和 version,子项目会隐式继承父项目的 groupId 和 version。
  • 依赖管理:父项目使用 <dependencyManagement> 来管理子项目的依赖版本,子项目可以选择性地在 <dependencies> 中声明具体版本。
  • 相对路径:父项目的 <parent> 元素支持 relativePath 属性,用于指定父项目的位置。
  • 默认相对路径:如果未指定 relativePath,默认值为 ../pom.xml
  • 3. 可被继承的 POM 元素

    • groupId:项目组 ID
    • version:项目版本
    • description:项目描述
    • organization:项目组织信息
    • inceptionYear:项目创始年份
    • url:项目 URL
    • developers:项目开发者
    • contributors:项目贡献者
    • distributionManagement:项目部署配置
    • issueManagement:缺陷跟踪系统
    • ciManagement:持续集成系统
    • scm:版本控制系统
    • mailingLists:项目邮件列表
    • properties:自定义 Maven 属性
    • dependencies:项目依赖配置
    • dependencyManagement:依赖管理配置
    • repositories:项目仓库配置
    • build:项目构建配置
    • reporting:项目报告输出配置

    4. 继承的实现步骤

  • 创建父项目(Aparent),设置打包类型为 pom,并在 POM 中定义依赖。
  • 创建子项目(Ason),指定父项目的 groupId(子可省略),并在 <dependencies> 中定义需要继承的依赖。
  • 创建测试类并使用 JUnit 进行测试,确保继承和依赖管理正常工作。
  • 二、聚合

    1. 聚合的基本概念

    Maven 聚合(Multi-Module Project)是将多个 Maven 项目或模块合并为一个大工程的过程。聚合模块负责管理和构建多个子模块。

    2. 如何配置聚合

  • 聚合模块配置:创建一个 Maven 项目作为聚合模块,设置打包类型为 pom
  • 引入新元素:使用 <modules> 元素引入多个子模块。
  • 版本管理:聚合模块的版本与被聚合模块版本一致。
  • 相对路径:每个子模块的 relativePath 指定其在聚合模块中的位置。
  • 目录结构:聚合模块通常放在项目目录的顶层,子模块放在相应的子目录下。
  • 目录名称:子模块目录名称应与其 artifactId 一致。
  • 3. 聚合的实现步骤

  • 创建聚合模块项目(maven1),设置打包类型为 pom
  • 创建子模块项目(mavenA 和 mavenB),确保 mavenB 依赖 mavenA。
  • 对聚合模块进行 package install 操作,生成并安装子模块的 JAR 文件到本地仓库。
  • 测试聚合模块,确保所有子模块都能顺利构建和运行。
  • 三、Maven 创建父子结构的项目

    1. 平行结构与父子结构

    上文提到的继承与聚合均采用了平行结构。以下将介绍父子结构(直接嵌套)的实现方式。

    2. 父子结构的实现

  • 创建父工程 maven_parent,使用 Maven Project 创建。
  • 创建子工程 maven_Amaven_B,将其直接添加到父工程的 src 目录下。
  • 配置父子工程的依赖关系,确保子工程可以访问父工程的资源。
  • 对父工程进行 package install 操作,生成并安装子项目的 JAR 文件到本地仓库。
  • 测试父工程,确保所有子项目都能顺利构建和运行。
  • 3. 配置继承、聚合及依赖

  • 在父项目 POM 中定义 <parent><dependencyManagement> 元素,管理子项目的依赖。
  • 在子项目 POM 中选择性地声明 groupId 和 version,继承父项目的配置。
  • 确保所有子项目都能正确引用父项目的依赖和版本信息。
  • 对父项目进行构建和安装操作,确保所有依赖关系正常工作。
  • 总结

  • 聚合:通过聚合可以将拆分的多个子项目合并为一个大项目,节省构建和安装的步骤。
  • 继承:通过继承可以统一管理项目的依赖版本,简化子项目的配置。
  • 最佳实践:一个 POM 可以同时作为聚合模块和父模块,这种结构在某些项目中非常常见。
  • 结构选择:根据项目需求选择平行结构或父子结构,注意相对路径和 POM 的配置。
  • 上一篇:maven 编译出错 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean
    下一篇:maven 私仓搭建及配置使用

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月13日 04时28分21秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章