maven依赖管理
2015-11-17 16:15
211 查看
建三个项目,Parent作为父项目、test1、test2作为子项目。
在父项目Parent中依赖项如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
在子项目test1、test2中没有写任何依赖,在test1下运行命令 mvn help:effective-pom,会发现test1下面有 junit 4.8.1的依赖。
如果我把 父项目Parent 中的依赖修改如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子项目test1、test2下面还是没有任何依赖项,在test1下运行命令 mvn help:effective-pom,会发现test1下面 没有 junit 4.8.1的依赖。
如果我在test1 下添加junit的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
再在test1下运行命令 mvn help:effective-pom,会发现test1下面有了 junit 4.8.1的依赖,并且scope为 test。
那么经过验证,scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。
dependencies 和 dependencyManagement 的区别在于:
dependencies :即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
dependencyManagement :如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。
虽然dependencyManagement 没有减少多少配置信息,但从管理上来说更加规范,在需要精简子项目依赖的时候可以使用。
同理插件管理pluginManagement和dependencyManagement是一样的道理。
在父项目Parent中依赖项如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
在子项目test1、test2中没有写任何依赖,在test1下运行命令 mvn help:effective-pom,会发现test1下面有 junit 4.8.1的依赖。
如果我把 父项目Parent 中的依赖修改如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子项目test1、test2下面还是没有任何依赖项,在test1下运行命令 mvn help:effective-pom,会发现test1下面 没有 junit 4.8.1的依赖。
如果我在test1 下添加junit的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
再在test1下运行命令 mvn help:effective-pom,会发现test1下面有了 junit 4.8.1的依赖,并且scope为 test。
那么经过验证,scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。
dependencies 和 dependencyManagement 的区别在于:
dependencies :即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
dependencyManagement :如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。
虽然dependencyManagement 没有减少多少配置信息,但从管理上来说更加规范,在需要精简子项目依赖的时候可以使用。
同理插件管理pluginManagement和dependencyManagement是一样的道理。
相关文章推荐
- Maven之——依赖与插件管理
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中dependencyManagement 和dependencies的区别
- maven-依赖管理最佳实践
- maven中的 dependencies 和 dependencyManagement 的区别
- Maven POM中的dependencyManagement
- maven项目子项目依赖父项目,版本号无法继承
- Maven详解之聚合与继承
- maven 中 pom.xml 配置文件标签说明,dependencyManagement和dependencies区别
- Maven的pom.xml文件结构之基本配置dependencies和dependencyManagement
- Maven之dependencyManagement
- maven中的 dependencies 和 dependencyManagement 的区别
- dependencyManagement与dependencies的区别
- Differences between dependencymanagement and dependencies in maven
- map 删除指定元素
- android studio找不到打包好的apk
- 契约式编程
- PopupWindow点击界外消失
- matlab连接摄像头读取视频部分解释