(四)Maven继承-子工程父工程、声明自定义标签

本文详细介绍了Maven工程的继承概念,强调了父工程如何通过pom.xml管理依赖和版本,以及IDEA中project与module的关系。dependencyManagement标签用于统一管理依赖版本,而modules标签用于聚合子工程。此外,还讨论了自定义属性和引用,以及Maven工程的启动顺序。通过合理利用这些特性,可以有效管理和组织大型项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承

A工程继承B工程,本质上是A工程的pom.xml文件继承了B工程的pom.xml文件的配置。
作用:在父工程中统一管理项目中的依赖信息,具体来说是管理依赖信息的版本。
只有打包方式为pom的Maven工程能够管理其他的Maven工程

 <groupId>com.springCloudAlibabaDemo</groupId>
    <artifactId>clouddemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>clouddemo</name>
    <description>com.springCloudAlibabaDemo</description>
<!--    打包为pom形式-->
    <packaging>pom</packaging>

IDEA中project与module之间的关系
在父工程中新建子工程完毕后,会在父工程的pom.xml文件中自动添加新的标签。

聚合

modules/module配置聚合,所有子工程的列表

 <modules>
 //子工程一
        <module>OrderService</module>
 //子工程二
        <module>stockService</module>
</modules>

子工程的pom.xml文件会自动新增,对父工程的继承声明。

 <parent>
        <artifactId>clouddemo</artifactId>
        <groupId>com.springCloudAlibabaDemo</groupId>
        <version>0.0.1-SNAPSHOT</version>
 </parent>

父工程中管理依赖通过dependencyManagement标签。
dependencyManagement和dependencies标签不同。dependencies能够把依赖jar包真正引入到当前工程。dependencyManagement仅仅能管理依赖信息,并不正在引入

<!--    在父工程中通过dependencyManagement管理依赖版本-->
    <dependencyManagement>
        <dependencies>
            <!--Springboot基本场景启动-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <!--Springboot测试启动器-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

此时如果子工程中想使用其他版本依赖,只要引入该依赖,并且声明版本即可。如果没有声明版本,则依然使用父工程提供的依赖。

自定义版本标签,使其一处修改,处处修改

    <properties>
        <java.version>1.8</java.version>
<!--    自定义标签    -->
        <springDemo.version>4.3.0.RELEASE</springDemo.version>
    </properties>

引用时使用${}引用。

<!--    引用自定义标签    -->
<version>${springDemo.version}</version>

Maven工程之间也是单继承。

举例:4是父工程
5、6、7是子工程,5又依赖6、6又依赖7.
则4工程工程的启动顺序,为4、7、6、5.
有父工程优先启动父工程、有依赖工程,则优先启动依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值