Maven中dependencyManagement的一点点说明
来源:互联网 发布:java多线程机制 编辑:程序博客网 时间:2024/05/21 12:46
maven中dependencyManagement的使用无非就是统一控制依赖的版本,但是在一些情况下modules自身指定的版本是无效的
例如:
//parent pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>love.llnn</groupId> <artifactId>mavendep</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>web</module> <module>service</module> </modules> <packaging>pom</packaging> <name>mavendep</name> <dependencyManagement> <!-- 片段1 start --> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.0</version> </dependency> </dependencies> <!-- 片段1 end--> </dependencyManagement></project>//web pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>mavendep</artifactId> <groupId>love.llnn</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>web</artifactId> <packaging>war</packaging> <name>web</name> <dependencies> <dependency> <groupId>love.llnn</groupId> <artifactId>service</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies></project>//service pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>mavendep</artifactId> <groupId>love.llnn</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>service</artifactId> <packaging>jar</packaging> <name>service</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.0</version> </dependency> </dependencies></project>
如下是结构图
如果存在“片段1”,web打包之后mybatis版本是3.1.0
执行
mvn dependency:tree[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ web ---[INFO] love.llnn:web:war:1.0-SNAPSHOT[INFO] \- love.llnn:service:jar:1.0-SNAPSHOT:compile[INFO] \- org.mybatis:mybatis:jar:3.1.0:compile (version managed from 3.4.0)
原因是:mybais对于web项目是间接依赖,间接依赖时dependencyManagement优先级更高!!!!!
解决方法是:所有的版本依赖都在parent项目中控制
如果根pom还有parent时,间接依赖时dependencyManagement的优先级别高!!!!,此时的解决方法修改parent的parent pomxml,或者在parent中把它的parent重写掉
0 0
- Maven中dependencyManagement的一点点说明
- maven中dependencies与dependencyManagement的区别
- Maven中dependencies与dependencyManagement的区别
- Maven中dependencies与dependencyManagement的区别
- Maven 中 dependencies 与 dependencyManagement 的区别
- maven中dependencyManagement 和dependencies 的区别
- maven中DependencyManagement和Dependencies
- maven 中parent 与 dependencyManagement
- Maven中dependencies节点和dependencyManagement节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- maven中关于dependencie和dependencyManagement的区别
- Maven中<dependencies>节点跟<dependencyManagement>节点的区别
- Maven中dependencyManagement和dependencies的作用和联系
- Maven中dependencies节点和dependencyManagement节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- Maven中<dependencies>节点和<dependencyManagement>节点的区别
- maven中关于dependencie和dependencyManagement的区别
- 欢迎使用CSDN-markdown编辑器
- hdu5294(Tricks Device)题解
- 【39.87%】【BZOJ 1880】[Sdoi2009]Elaxia的路线
- 安装 oracle 客户端 plsql developer 遇到的坑
- Hibernate 懒加载lazy
- Maven中dependencyManagement的一点点说明
- 创建Android模拟器时提示"No system images installed for this target"的问题
- swift3新路程(4)数组和字典(array/dictionary)
- 【JZOJ4786】【NOIP2016提高A组模拟9.17】小a的强迫症
- nyist-42一笔画问题(欧拉通路) bfs||dfs||并查集
- 51nod1685 第K大区间2
- Yii2一些方法技巧小记
- php生成数据字典
- 图像处理中的一阶偏导数和二阶偏导数