zoukankan      html  css  js  c++  java
  • maven的包冲突

      maven的间接引用会引入其他未声明的包,maven自身的冲突解决方案,最终引用的包可能不是希望的版本。

      

      直接声明期望的版本号,就没有间接引用的问题。

      子模块很多时,可以使用dependencyManagement在父模块中统一管理。

      父模块中配置:

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                    <version>1.2.3.RELEASE</version>
                </dependency>
            </dependencies>
    </dependencyManagement>

      子模块则无需指定版本信息:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

      dependencyManagement中定义的只是依赖的声明,并不实现引入,因此子项目需要显式的声明需要用的依赖。

      发生ClassNotFoundException等包冲突的引起的问题时,可以如下解决:

      intellj中Reimport,会重新下载对应的包,解决IDE缓存的问题。

      

      还是存在冲突时,mvn dependency:tree命令,查看间接引入的来源。

      mvn dependency:tree >tree.txt,使用该命令将结果重定向到tree.txt中,方便查看。

      

      mvn dependency:tree找到是哪个模块的哪个包间接引入了版本有问题的包,使用exclusion切断引用关系。 

    <dependency>  
        <groupId>org.unitils</groupId>  
        <artifactId>unitils-dbmaintainer</artifactId>  
        <version>${unitils.version}</version>  
        <exclusions>   
            <exclusion>  
                <artifactId>asm</artifactId>  
                <groupId>asm</groupId>  
            </exclusion>  
        </exclusions>  
    </dependency>
  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/8982869.html
Copyright © 2011-2022 走看看