欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven之分析剔除無用的jar引用問題

 更新時間:2023年09月07日 10:43:14   作者:凝雨-Yun  
這篇文章主要介紹了Maven之分析剔除無用的jar引用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Maven分析剔除無用的jar引用

當(dāng)項目開發(fā)維護(hù)了一段時間時,經(jīng)常會有項目打包速度慢,jar依賴多,依賴關(guān)系錯綜復(fù)雜,這種問題是項目維護(hù)最常見的問題,由于開發(fā)人員在bugfix或者feature開發(fā)時往往只是往項目中添加jar依賴,那我們?nèi)绾畏治龀鲰椖恐心男┮蕾囀怯玫降模男┮蕾囀遣挥玫模?/p>

使用Maven analyze來進(jìn)行分析

使用如下命令:

mvn dependency:analyze

會輸出如下的日志:

[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ xxxproject ---
[WARNING] Used undeclared dependencies found:
[WARNING]    org.springframework:spring-beans:jar:4.0.0.RELEASE:compile
[WARNING]    org.springframework:spring-context:jar:4.0.0.RELEASE:compile
[WARNING] Unused declared dependencies found:
[WARNING]    com.alibaba:dubbo:jar:2.5.3:compile
[WARNING]    com.baidu.disconf:disconf-client:jar:2.6.32:compile
[WARNING]    org.mybatis:mybatis:jar:3.2.7:compile
[WARNING]    org.mybatis:mybatis-spring:jar:1.2.2:compile
[WARNING]    mysql:mysql-connector-java:jar:5.1.41:compile
[WARNING]    com.alibaba:druid:jar:1.0.9:compile
[WARNING]    com.github.sgroschupf:zkclient:jar:0.1:compile
[WARNING]    org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[WARNING]    org.springframework:spring-jdbc:jar:4.0.0.RELEASE:compile
[WARNING]    org.slf4j:log4j-over-slf4j:jar:1.7.5:compile
[WARNING]    org.slf4j:jcl-over-slf4j:jar:1.7.5:runtime
[WARNING]    ch.qos.logback:logback-classic:jar:1.0.13:compile                         

我們就來說一下日志中的

Used undeclared dependencies found Unused declared dependencies found

Used undeclared dependencies found

這個是指某些依賴的包在代碼中有用到它的代碼,但是它并不是直接的依賴(就是說沒有在pom中直接聲明),是通過引入傳遞下來的包。

舉個例子:

project pom 中聲明了 A.ja r的依賴(沒有聲明 B.jar 的依賴)  A.jar 的依賴關(guān)系:

A.jar  ->  B.jar  通過 mvn dependency:analyze 出現(xiàn) 

[WARNING] Used undeclared dependencies found: B.jar  

就說明 project 中的代碼用到了 B.jar 的代碼

這個時候你就可以把 B.jar 直接聲明在pom中

Unused declared dependencies found

這個是指我們在pom中聲明了依賴,但是在實際代碼中并沒有用到這個包!也就是多余的包。

這個時候我們就可以把這個依賴從pom中剔除。

但是這里我們需要注意:

這里說的實際代碼沒有用到,指的是在main/java和test里沒有用的,但是并不是意味著真的沒有用到這些包

有可能配置文件中引用或者其他擴展點自動加載這些包,所以我們在刪除依賴的時候一定要小心,做好備份,因為這類引用maven是分析不出來的。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java AQS(AbstractQueuedSynchronizer)源碼解析

    Java AQS(AbstractQueuedSynchronizer)源碼解析

    AbstractQueuedSynchronizer被稱為隊列同步器,簡稱為大家熟知的AQS,這個類可以稱作concurrent包的基礎(chǔ)。本文將通過剖析源碼來看看AQS是如何工作的,感興趣的可以了解一下
    2023-02-02
  • Spring注解配置AOP導(dǎo)致通知執(zhí)行順序紊亂解決方案

    Spring注解配置AOP導(dǎo)致通知執(zhí)行順序紊亂解決方案

    這篇文章主要介紹了Spring注解配置AOP導(dǎo)致通知執(zhí)行順序紊亂解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot中進(jìn)行事務(wù)回滾的方法

    SpringBoot中進(jìn)行事務(wù)回滾的方法

    在Spring Boot中,可以使用TransactionTemplate或@Transactional注解來進(jìn)行事務(wù)管理,本文主要介紹了SpringBoot中進(jìn)行事務(wù)回滾的方法,感興趣的可以了解一下
    2023-11-11
  • spring boot測試打包部署的方法

    spring boot測試打包部署的方法

    spring boot項目如何測試,如何部署,在生產(chǎn)中有什么好的部署方案嗎?這篇文章就來介紹一下spring boot 如何開發(fā)、調(diào)試、打包到最后的投產(chǎn)上線,感興趣的朋友一起看看吧
    2018-01-01
  • Java中的線程池如何實現(xiàn)線程復(fù)用

    Java中的線程池如何實現(xiàn)線程復(fù)用

    這篇文章主要介紹了Java中的線程池如何實現(xiàn)線程復(fù)用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • java selenium 操作彈出窗口示例代碼

    java selenium 操作彈出窗口示例代碼

    本文主要介紹java selenium 操作彈出窗口,這里實例講解操作彈出窗口詳細(xì)流程,并附示例代碼,有需要的小伙伴可以參考下
    2016-08-08
  • Java的優(yōu)先隊列PriorityQueue原理及實例分析

    Java的優(yōu)先隊列PriorityQueue原理及實例分析

    這篇文章主要介紹了Java的優(yōu)先隊列PriorityQueue原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動的問題

    解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動的問題

    這篇文章主要介紹了解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動的問題,需要的朋友可以參考下
    2020-12-12
  • struts2簡介_動力節(jié)點Java學(xué)院整理

    struts2簡介_動力節(jié)點Java學(xué)院整理

    Struts2框架是MVC流程框架,適合分層開發(fā),這篇文章主要為大家詳細(xì)介紹了struts2簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring 方法注解@Bean及配置類掃描路徑

    Spring 方法注解@Bean及配置類掃描路徑

    這篇文章主要介紹了Spring 方法注解@Bean及配置類掃描路徑,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12

最新評論