maven中的 dependencies 和 dependencyManagement 的区别(六)
来源:互联网 发布:flash源码 编辑:程序博客网 时间:2024/04/29 02:28
今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致:
比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的<dependency> 标签中,
而有的依赖的<scope>是写在父项目中的<dependencyManagement> 中 。
我知道前一种写法是对的,而后一种写法却不知道对不对了,从网上查了下,没有找到非常确切的答案,于是自己验证了一把。
把验证过程给大家说下,大家也可以自己练手。
首先新建三个项目,Parent作为父项目、projectA、projectB作为子项目。
在父项目Parent中依赖项如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
在子项目projectA、projectB中没有写任何依赖,在projectA 下运行命令 mvn help:effective-pom,会发现A下面有 junit 4.8.1的依赖。
如果我把 父项目Parent 中的依赖修改如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子项目ProjectA、projectB下面还是没有任何依赖项,在projectA 下运行命令 mvn help:effective-pom,会发现A下面 没有 junit 4.8.1的依赖。
如果我在projectA 下添加junit的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
再在projectA 下运行命令 mvn help:effective-pom,会发现A下面有了 junit 4.8.1的依赖,并且scope为 test。
那么经过验证,scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。
但有一点需要注意,dependencies 和 dependencyManagement 的区别在于:
前者,即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
后者,如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。
pluginManagement和plugins的区别同dependencyManagement和dependencies
- maven中的 dependencies 和 dependencyManagement 的区别(六)
- maven中的 dependencies 和 dependencyManagement 的区别(六)
- maven中的 dependencies 和 dependencyManagement 的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- maven中的dependencies和dependencyManagement的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- Maven实战(六)--- dependencies与dependencyManagement的区别
- Maven实战(六)--- dependencies与dependencyManagement的区别
- Maven实战(六)--- dependencies与dependencyManagement的区别
- maven parent中的dependencies和dependencyManagement区别
- Maven中的dependencyManagement和dependencies区别
- Maven中的DependencyManagement和Dependencies区别
- Maven中的dependencyManagement和dependencies区别
- maven里dependencyManagement和dependencies的区别
- Maven dependencyManagement和dependencies的区别
- 如何指定GCC的默认头文件路径(非常有用)
- 不外昨夜下战书当店的裘姓值班司理则称
- CALLBACK总结
- MyUnity:简易的 Unity Tweak 工具
- silverlight MouseLeftButtonDown无法触发解决办法
- maven中的 dependencies 和 dependencyManagement 的区别(六)
- itoa函数及atoi函数
- 如何使Android应用程序获取系统权限【转】
- MATLAB中画图中的text属性
- 为永嘉路故店合弛的宣扬口号毛病援用“法租界”做替店址的描述
- android检测当前网络是否可用
- linux 读写RTC时间
- ORACLE 定时执行存储过程
- PHP 数学运算之类笔记