亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

Maven分析剔除無用的jar引用

當(dāng)項(xiàng)目開發(fā)維護(hù)了一段時(shí)間時(shí),經(jīng)常會有項(xiàng)目打包速度慢,jar依賴多,依賴關(guān)系錯(cuò)綜復(fù)雜,這種問題是項(xiàng)目維護(hù)最常見的問題,由于開發(fā)人員在bugfix或者feature開發(fā)時(shí)往往只是往項(xiàng)目中添加jar依賴,那我們?nèi)绾畏治龀鲰?xiàng)目中哪些依賴是用到的,哪些依賴是不用的?

使用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

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

舉個(gè)例子:

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 的代碼

這個(gè)時(shí)候你就可以把 B.jar 直接聲明在pom中

Unused declared dependencies found

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

這個(gè)時(shí)候我們就可以把這個(gè)依賴從pom中剔除。

但是這里我們需要注意:

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

有可能配置文件中引用或者其他擴(kuò)展點(diǎn)自動加載這些包,所以我們在刪除依賴的時(shí)候一定要小心,做好備份,因?yàn)檫@類引用maven是分析不出來的。

總結(jié)

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

相關(guān)文章

最新評論