Maven中的dependencyManagement和dependencies

在maven中这两个标签长的很相似,dependencyManagement很眼熟也是使用过,但是不知道二者之间的具体区别,这一次做一个辨析

  • dependencyManagement

使用maven进行多模块的依赖管理时,dependencyManagement可以保证父模块下面的所有子模块所引用的包的版本是一致的,这句话比较长,下面举个例子:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>      
        </dependencies>
</dependencyManagement>

子模块中只需要groupid和artifactId即可,如:

 <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
 </dependencies>

在父模块中使用dependencyManagement标签进行依赖的声明,只是一个声明,子模块如果继承了父模块,不会自动引入父模块中dependencyManagement下面的依赖,如果需要使用,那么子模块需要显式的进行声明,但只需要声明除了版本之外的其他因素就可以了,版本号不需要进行声明,全部使用父模块中规定的版本号,这样就可以达到在所有子模块中控制依赖版本统一的效果
当然,如果不想使用父模块中的版本,那么可以在子模块中单独声明,这时maven会以子模块中的为准

  • dependencies

和dependencyManagement不同的是,如果在父模块中的所以依赖均使用dependencies标签进行声明,那么所有子模块会自动的引入父模块中的全部依赖,如果这样,那么子模块中可能会引入一些自己用不到的依赖,和上面的定制化的方式相比起来劣势很明显

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值