<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      排查maven 沖突及解決方式

      Maven

      Maven 是一個以項目為中心的自動化構建工具,主要用于Java項目的管理和構建。它提供了一種統(tǒng)一的方式來描述項目的結構、依賴關系和構建過程,簡化了項目的構建和管理。

      Maven 的主要特點:

      1. 項目對象模型(POM):Maven 使用pom.xml文件來定義項目的依賴、插件和構建配置。POM 是 Maven 項目的核心,描述了項目的基本信息。
      2. 依賴管理:Maven 允許開發(fā)者輕松地管理項目所需的庫和框架。通過聲明依賴,Maven 會自動下載所需的庫及其依賴項,解決版本沖突。
      3. 插件體系:Maven 提供了豐富的插件,可以在構建過程中執(zhí)行各種任務,例如編譯代碼、打包、運行測試等。
      4. 生命周期管理:Maven 通過定義項目的生命周期來規(guī)范構建過程,主要包含清理、編譯、測試、打包、部署等階段。
      5. 多模塊項目支持:Maven 支持多模塊項目,允許將相關模塊組織在同一個項目結構中,方便管理和構建。
      6. 社區(qū)支持:Maven 擁有龐大的社區(qū)支持,提供了大量的插件和資源,幫助開發(fā)者高效開展工作。

      1. 常見的依賴沖突報錯

      1.1、版本沖突報錯

      [WARNING] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
      [WARNING] 
      [WARNING]   org.apache.commons:commons-lang3:jar:3.4 is referenced from more than one dependency.
      [WARNING]     - org.apache.commons:commons-lang3:jar:3.4 (compile)
      [WARNING]     - org.apache.commons:commons-lang3:jar:3.5 (compile)
      

      1.2、類找不到或方法找不到

      NoClassDefFoundError 或者 ClassNotFoundException或者 NoSuchMethodException

      常見但不僅限于以下異常:
      java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
      或者    
      java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isBlank(Ljava/lang/CharSequence;
       
      NoSuchMethodException
      依賴沖突可能會間接導致 NoSuchMethodException。例如:
          
      不同版本的庫:如果項目中引入了同一庫的不同版本,Maven 可能會選擇一個版本,而這個版本中可能缺少某些方法,從而在運行時導致 NoSuchMethodException。
      依賴傳遞:某些依賴可能會引入其他庫的特定版本,如果這些版本之間存在不兼容的方法,也可能導致 NoSuchMethodException。    
      

      1.3、依賴樹中的沖突

      例如:
      [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.3.4.RELEASE:compile
      [INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.3.4.RELEASE:compile
      [INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.3.4.RELEASE:compile
      [INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.3.4.RELEASE:compile
      [INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.3.4.RELEASE:compile
      [INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile
      [INFO] |  |  |  |  +- ch.qos.logback:logback-core:jar:1.2.3:compile
      [INFO] |  |  |  |  \- org.slf4j:slf4j-api:jar:1.7.30:compile
      [INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
      [INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
      [INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
      [INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
      [INFO] |  |  +- org.springframework:spring-core:jar:5.2.9.RELEASE:compile
      [INFO] |  |  |  \- org.springframework:spring-jcl:jar:5.2.9.RELEASE:compile
      

      2、排查maven 依賴是否沖突

      2.1、pom 依賴,這里展示部分依賴進行拆解

      2.2、使用idea 自帶工具進行排查分析:紅色的線就表示沖突了。

      2.3、使用工具 :maven helper

      首先我使用的idea工具,可以安裝插件maven helper,

      2.4、重啟idea
      這玩意裝好,我們關閉窗口,有可能會叫你restart一下,你就乖乖聽話。之后我們打開pom文件并且點擊依賴分析。切換到:Dependency Analyzer

      3、分析沖突

      3.1、點擊右鍵---》Jump to Source 就會跳回到自己的pom 文件(我這跳轉到 56 行)

      這個時候我們可以一直向下點擊,去看 mybatis 3.5.14 依賴路徑和 mybatis 3.5.15 沖突依賴路徑版本

      4、解決辦法

      總共有四種解決方式:

      1,第一聲明優(yōu)先原則

      在pom.xml配置文件中,如果有兩個名稱相同版本不同的依賴聲明,那么先寫的會生效(同個pom.xml文件)。

      所以,先聲明自己要用的版本的jar包即可。

      2,路徑近者優(yōu)先

      直接依賴優(yōu)先于傳遞依賴,如果傳遞依賴的jar包版本沖突了,那么可以自己聲明一個指定版本的依賴jar,即可解決沖突。

      3,排除原則

      傳遞依賴沖突時,可以在不需要的jar的傳遞依賴中聲明排除,從而解決沖突。

      在pom 文件就會自動生成 排除標識

      <dependency>
                  <groupId>com.baomidou</groupId>
                  <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
                  <version>3.5.5</version>
                  <!-- 排除掉 沖突的 mybatis(3.5.15) -->
                  <exclusions>
                      <exclusion>
                          <artifactId>mybatis</artifactId>
                          <groupId>org.mybatis</groupId>
                      </exclusion>
                  </exclusions>
              </dependency>
      

      結果:

      刷新:先返回去pom 點擊刷新,然后在 maven help 里面點擊 Refresh UI

      最后依賴沖突只剩三個

      4,版本鎖定原則

      在配置文件pom.xml中先聲明要使用哪個版本的相應jar包,聲明后其他版本的jar包一律不依賴。解決了依賴沖突。

      <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>org.mybatis</groupId>
                      <artifactId>mybatis</artifactId>
                      <version>3.5.14</version>
                  </dependency>
              </dependencies>
          </dependencyManagement>
      

      結果:依舊可以排除掉依賴沖突

      最后文章有啥不對,歡迎大佬指點!!!
      如果感覺對你有幫助就點贊推薦或者關注一下吧!!!

      posted @ 2024-09-27 09:15  古渡藍按  閱讀(1746)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 边吃奶边添下面好爽| 亚洲综合色区另类av| 少妇人妻偷人精品无码视频新浪| 日本不卡的一区二区三区| 91福利一区福利二区| 欧美一区二区| 久久午夜私人影院| 日韩美av一区二区三区| 中文字幕日韩一区二区不卡 | 天天躁日日躁狠狠躁中文字幕| 国产成熟妇女性视频电影| 建宁县| 久久天天躁夜夜躁狠狠 ds005.com | 色伦专区97中文字幕| 亚洲第一极品精品无码久久| 精品一区二区三区少妇蜜臀| 4399理论片午午伦夜理片| 国产精品一区二区无线| 国内视频偷拍久久伊人网| 人妻少妇无码精品专区| 22222se男人的天堂| 国产亚洲av夜间福利香蕉149| 免费无码一区无码东京热| 熟女人妻视频| 99国产午夜福利在线观看| 成人福利国产午夜AV免费不卡在线| 福利成人午夜国产一区| 麻豆tv入口在线看| 4虎四虎永久在线精品免费| 乱人伦人妻系列| 国产麻豆精品一区一区三区| 99久久国产综合精品成人影院| 国产亚洲一本大道中文在线| 国产精品亚洲二区亚瑟| 国产福利精品一区二区| 国产精品一区二区AV| 国产一区二区丰满熟女人妻| 日本一区二区三区专线| 精品国产乱码久久久久久婷婷| 日韩视频一区二区三区视频| 四虎影视永久无码精品|