maven中关于dependencie和dependencyManagement的区别
来源:互联网 发布:篮球记分牌软件 编辑:程序博客网 时间:2024/06/06 05:27
以下文件转载于Rich播客http://blog.sina.com.cn/s/blog_6125fe5d0100zxrz.html
今天我在配置 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 下运行命令 mvnhelp: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 下运行命令 mvnhelp: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下面有了 junit4.8.1的依赖,并且scope为 test。
那么经过验证,scope写在子项目中的<dependencies>下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。
但有一点需要注意,dependencies 和 dependencyManagement 的区别在于:
前者,即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
后者,如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version和 scope 都读取自 父pom。
- maven中关于dependencie和dependencyManagement的区别
- maven中关于dependencie和dependencyManagement的区别
- maven中dependencyManagement 和dependencies 的区别
- Maven中dependencies节点和dependencyManagement节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中dependencies节点和dependencyManagement节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven的dependency和dependencyManagement的区别
- maven中dependencies与dependencyManagement的区别
- Maven中dependencies与dependencyManagement的区别
- Maven中dependencies与dependencyManagement的区别
- Maven 中 dependencies 与 dependencyManagement 的区别
- maven里dependencyManagement和dependencies的区别
- Maven dependencyManagement和dependencies的区别
- Maven dependencyManagement和dependencies的区别
- maven中的 dependencies 和 dependencyManagement 的区别
- Android GridView中设置Button后不能响应onItemClick()原因
- Selenium-IDE 的使用方法
- 定制可隐藏seperator的UITableViewCell
- PostgreSQL学习手册(常用数据类型) - Stephen_Liu - 博客园
- jqGrid API 及用法
- maven中关于dependencie和dependencyManagement的区别
- intel毫无眼光,迟早死翘
- STL模板库list,vector
- RelativeLayout的重要属性
- 四种常见的 POST 提交数据方式
- MFC_CString
- 创建SSH key
- java udp传输protobuf
- Objective-C - 代码块block