zoukankan      html  css  js  c++  java
  • Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号

    一、依赖传递冲突解决

    什么是依赖?

    在maven的pom文件中添加三方库坐标,即引入三方依赖。

    依赖传递

    项目依赖了A,A依赖了B,项目自动依赖了B

    注意:父项目中的依赖有 <scope> 标签属性为   test  provided  则不会依赖传递

    依赖冲突

    项目依赖了A和B,A 依赖了C-1.1、D-1.1, B依赖了C-1.2、D-1.2,E-1.2。此时C、D库存在版本冲突

    解决冲突

    红线代表依赖被优化(失效)

     显示红色实线的代表冲突。红色虚线,告诉你同一个jar都在哪里被多次引用了。

    二、maven自带调优原则

    根据三方库导入顺序,自动优化jar包

    自动优化原则有两条

    第一声明者优先: 跟导入依赖的顺序有关,先导入的优先级更高

    第二路径近者优先,路径指的是依赖关系图中的位置

    三、排除依赖

     此时有重复依赖,(重复不一定冲突,版本不同会冲突

    我们想排除jdbc包下的core依赖使用代码

    <!--spring的jdbc包-->
    <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>5.1.12.RELEASE</version>
         <exclusions>
             <exclusion>
                 <artifactId>spring-core</artifactId>
                 <groupId>org.springframework</groupId>
             </exclusion>
         </exclusions>
    </dependency>

    四、锁定版本

    如果多个库,交叉导入了同一个库,意思就是多个相同依赖的版本不同,此时我们可以通过dependencyManagement锁定库的版本。

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>5.2.5.RELEASE</version>
                </dependency>
            </dependencies>
    </dependencyManagement>
    <dependencies>
            <!--spring的jdbc包  此时导入被锁定的包,不需要写版本号,若写了就以就近原则下载  -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
            </dependency>
     </dependencies>

    五、提取版本号

    选中版本,ctrl+alt+v,提取版本号,自动放入properties中

  • 相关阅读:
    Python
    Java 内部类
    Django with uWSGI and nginx
    Android 使用AsyncTask 下载图片的例子,学会使用AsyncTask
    django QuerySet里那些常用又不常见的技巧
    android模拟器网络设置(局域网)
    iOS9 class dump header
    Qt之QHeaderView自定义排序(终极版)
    Qt之QHeaderView自定义排序(QSortFilterProxyModel)
    Qt之QHeaderView排序
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13674476.html
Copyright © 2011-2022 走看看