Maven之子模块pom.xml继承父模块pom.xml配置

您所在的位置:网站首页 xml文件配置引包路径 Maven之子模块pom.xml继承父模块pom.xml配置

Maven之子模块pom.xml继承父模块pom.xml配置

2023-07-28 20:23| 来源: 网络整理| 查看: 265

前言

Maven中可以通过继承父模块pom,来实现pom.xml配置的继承和传递,便于各种Maven插件以及程序依赖的统一管理。通过将子类模块的公共配置,抽象聚合生成父类模块,能够避免pom.xml的重复配置。由于父类模块本身并不包含除了POM之外的项目文件,也就不需要src/main/java之类的文件夹了。每当需要对多个子模块进行相同的配置时,只需要在父类模块的pom中进行配置,而子类中声明使用此配置即可,当然子类pom中也可以自定义配置,并覆盖父类中的各项配置,和Java中类的继承类似。

可继承的POM元素

1) groupId:项目组ID,项目坐标的核心元素

2) version:项目版本,项目坐标的核心元素

3) description:项目的表述信息

4) organization:项目的组织信息

5) inception Year:项目的创始年份

6) url:项目的URL地址

7) developers:项目的开发者信息

8) contributors:项目的贡献者信息

9) distributionManagement:项目的部署管理

10) issueManagement:项目的缺陷和跟踪系统信息

11) ciManagement:项目的持续集成信息系统

12) scm:项目的版本控制系统信息

13) mailingLists:项目的邮件列表信息

14) properties:自定义的Maven属性

15) dependencies:项目的依赖属性

16) dependencyManagement:项目的依赖管理配置

17) repositories:项目的仓库配置

18) build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等

19) reporting:包括项目的报告输出目录配置、报告插件配置等

POM继承中的依赖管理和插件管理

Maven提供的dependencyManagement和pluginManagement元素用于帮助POM继承过程中的依赖管理和插件管理。在父类POM下,此两个元素中的声明的依赖或配置并不会引入实际的依赖或是造成实际的插件调用行为,不过它们能够约束子类POM中的依赖和插件配置的声明。只有当子类POM中配置了真正的dependency或plugin,并且其groupId和artifactId与父类POM中dependencyManagement和pluginManagement相对应时,才会进行实际的依赖引入或插件调用,当然子类中也能够进行自定义配置去覆盖父类,或是额外声明自己的配置

POM继承示例

1) 在父类POM中使用dependencyManagement和pluginManagement,声明子类POM中可能用到的依赖和插件

4.0.0 com.tomandersen HadoopCustomModules pom 1.0-SNAPSHOT flume log-collector 1.7.20 1.0.7 com.alibaba fastjson 1.2.51 ch.qos.logback logback-core ${logback.version} ch.qos.logback logback-classic ${logback.version} maven-compiler-plugin 2.3.2 1.8 1.8 maven-assembly-plugin jar-with-dependencies make-assembly package single

2) 在子类POM中声明父类POM,并配置实际使用的dependency和plugin,只需要通过声明groupId和artifactId就可以避免配置各种依赖和插件的详细配置,当然也可以自己覆盖父类配置信息

HadoopCustomModules com.tomandersen 1.0-SNAPSHOT 4.0.0 com.tomandersen log-collector com.alibaba fastjson ch.qos.logback logback-core ch.qos.logback logback-classic maven-compiler-plugin maven-assembly-plugin com.tomandersen.appclient.AppMain 更多详细内容可以查阅《Maven实战》 End~


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3