maven的继承机制

子工程可以覆盖父工程的相同包的不同版本;那么子工程中默认使用子工程中pom文件中的配置

创建父工程

创建父工程和创建一般的 Java工程操作一致,唯一需要注意的是打包方式处要设置为pom。

在子工程中引用父工程

<parent>

<groupId>...</groupId>

<artifactId>...</artifactId>

<version>...</version>

<relativePath>从当前目录到父项的pom.xml文件的相对路径文件的相对路径</relativePath>

</parent> 

然后子项目自动拥有了父项目的依赖;

此时如果子工程的groupId和version和父工程重复则可以删除。

在父工程中管理依赖

parent项目中的dependencies标签,用标签dependencyManagement标签括起来

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>
</dependencyManagement>

 

在子项目中重新指定需要的依赖,删除范围和版本号;

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
</dependency>

 

可以被继承的元素:

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

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

description:项目的描述信息

organization:项目的组织信息

inceptionYear:项目的创始年份

url:项目的url地址

developers:项目的开发者信息

contributors:项目的贡献者信息

distributionManagement:项目的部署配置信息

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

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

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

mailingLists:项目的邮件列表信息

properties:自定义的maven属性配置信息

dependencyManagement:项目的依赖管理配置

repositories:项目的仓库配置

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

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

posted on   companion  阅读(150)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示