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

springBoot Maven 剔除無(wú)用的jar引用問(wèn)題記錄

 更新時(shí)間:2024年12月23日 09:34:08   作者:水w  
這篇文章主要介紹了springBoot Maven 剔除無(wú)用的jar引用問(wèn)題記錄,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

當(dāng)項(xiàng)目經(jīng)過(guò)一段時(shí)間的開發(fā)和維護(hù)后,經(jīng)常會(huì)遇到項(xiàng)目打包速度變慢的問(wèn)題。這通常與項(xiàng)目中包含大量的jar依賴有關(guān),這些依賴之間的關(guān)系錯(cuò)綜復(fù)雜。這種情況在項(xiàng)目維護(hù)過(guò)程中是非常常見的。由于開發(fā)人員在修復(fù)bug或開發(fā)新功能時(shí),往往會(huì)簡(jiǎn)單地向項(xiàng)目中添加新的jar依賴,而沒(méi)有對(duì)現(xiàn)有依賴進(jìn)行清理或優(yōu)化。因此,我們需要一種方法來(lái)分析項(xiàng)目中哪些jar依賴是真正被使用的,哪些依賴則可能已經(jīng)不再需要,從而幫助我們優(yōu)化項(xiàng)目結(jié)構(gòu),提高構(gòu)建效率。

我們可以使用Maven analyze來(lái)進(jìn)行分析,使用如下命令:

mvn dependency:analyze

在idea的終端輸入命令,則會(huì)輸出如下的日志:

當(dāng)你運(yùn)行 mvn dependency:analyze 命令時(shí),Maven 會(huì)對(duì)項(xiàng)目的依賴進(jìn)行分析,并報(bào)告一些潛在的問(wèn)題。日志中的Used undeclared dependencies found和Unused declared dependencies found是兩個(gè)常見的警告信息。

Used undeclared dependencies found

Used undeclared dependencies found這個(gè)警告表示項(xiàng)目中使用了某些未在 pom.xml 文件中聲明的依賴。但是它并不是直接的依賴(就是說(shuō)沒(méi)有在pom中直接聲明),是通過(guò)引入傳遞下來(lái)的包。換句話說(shuō),項(xiàng)目中有一些類或資源是從這些未聲明的依賴中引用的,但這些依賴沒(méi)有被明確地添加到項(xiàng)目的依賴管理中。

舉個(gè)例子:project在pom中聲明了A.jar的依賴(沒(méi)有聲明B.jar的依賴) A.jar的依賴關(guān)系:A.jar -> B.jar 通過(guò)mvn dependency:analyze出現(xiàn) [WARNING] Used undeclared dependencies found: B.jar 就說(shuō)明project中的代碼用到了B.jar的代碼 這個(gè)時(shí)候你就可以把B.jar直接聲明在pom中。

Unused declared dependencies found

Unused declared dependencies found這個(gè)警告表示項(xiàng)目中聲明了一些沒(méi)有被使用的依賴。換句話說(shuō),這些依賴在項(xiàng)目中沒(méi)有任何引用或使用。

假設(shè)你在 pom.xml 中聲明了一個(gè)依賴 com.example:example-lib,但在項(xiàng)目代碼中并沒(méi)有使用任何來(lái)自該庫(kù)的類或資源。運(yùn)行 mvn dependency:analyze 后,你會(huì)看到類似如下的警告:

[WARNING] Unused declared dependencies found:
com.example:example-lib:jar:1.0.0:compile

但是這里我們需要注意:這里說(shuō)的實(shí)際代碼沒(méi)有用到,指的是在main/java和test里沒(méi)有用的但是并不是意味著真的沒(méi)有用到這些包,有可能配置文件中引用或者其他擴(kuò)展點(diǎn)自動(dòng)加載這些包,所以我們?cè)趧h除依賴的時(shí)候一定要小心,做好備份,因?yàn)檫@類引用maven是分析不出來(lái)的。

要注意的還有,這個(gè)檢測(cè)的結(jié)果僅供參考,有時(shí)也不準(zhǔn)確,如org.projectlombok:lombok:jar:1.16.20:provided,實(shí)際上在項(xiàng)目中有使用到它的注解@Data,這個(gè)屬于誤判。要注意剔除依賴后多測(cè)試,工具畢竟有畢竟的缺陷性。

對(duì)于這種,最好是先注釋,測(cè)試沒(méi)有問(wèn)題的話再刪除,這樣也不用做備份,隨時(shí)取消注釋。

此外,我們?cè)谛马?xiàng)目建立時(shí),引用jar包時(shí)要慎重,不要一股腦兒直接拷貝老項(xiàng)目的依賴,避免后期又花時(shí)間來(lái)剔除。

到此這篇關(guān)于springBoot Maven 剔除無(wú)用的jar引用的文章就介紹到這了,更多相關(guān)springBoot Maven jar引用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Intellij IDEA 關(guān)閉和開啟自動(dòng)更新的提示?

    Intellij IDEA 關(guān)閉和開啟自動(dòng)更新的提示?

    這篇文章主要介紹了Intellij IDEA 關(guān)閉和開啟自動(dòng)更新的提示操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Java利用POI讀取、寫入Excel的方法指南

    Java利用POI讀取、寫入Excel的方法指南

    這篇文章主要給大家介紹了關(guān)于Java利用POI讀取、寫入Excel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java中生成任意之間數(shù)的隨機(jī)數(shù)詳解

    java中生成任意之間數(shù)的隨機(jī)數(shù)詳解

    這篇文章主要介紹了java中生成任意之間數(shù)的隨機(jī)數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • nacos配置在代碼中引用的方法講解

    nacos配置在代碼中引用的方法講解

    這篇文章主要介紹了nacos配置在代碼中如何引用,如果主配置中配置的內(nèi)容和拓展配置的內(nèi)容重復(fù)則按主配置的配置 ,如果拓展配置中的內(nèi)容和另一個(gè)拓展配置中的內(nèi)容重復(fù),則按下標(biāo)大的配置作為最終的配置,對(duì)nacos配置代碼引用相關(guān)知識(shí)感興趣朋友一起看看吧
    2022-12-12
  • Java中RocketMQ的流量削峰詳解

    Java中RocketMQ的流量削峰詳解

    這篇文章主要介紹了Java中RocketMQ的流量削峰詳解,MQ的主要特點(diǎn)為解耦、異步、削峰,該文章主要記錄與分享個(gè)人在實(shí)際項(xiàng)目中的RocketMQ削峰用法,用于減少數(shù)據(jù)庫(kù)壓力的業(yè)務(wù)場(chǎng)景,需要的朋友可以參考下
    2023-09-09
  • SpringMVC處理器映射器HandlerMapping詳解

    SpringMVC處理器映射器HandlerMapping詳解

    這篇文章主要介紹了SpringMVC處理器映射器HandlerMapping詳解,在SpringMVC中會(huì)有很多請(qǐng)求,每個(gè)請(qǐng)求都需要一個(gè)HandlerAdapter處理,具體接收到一個(gè)請(qǐng)求之后使用哪個(gè)HandlerAdapter進(jìn)行處理呢,他們的過(guò)程是什么,需要的朋友可以參考下
    2023-09-09
  • 淺談Apache Maven ToolChains的使用

    淺談Apache Maven ToolChains的使用

    Maven是java中非常有用和常用的構(gòu)建工具,基本上現(xiàn)在大型的java項(xiàng)目都是Maven和gradle的天下了。本文將介紹Apache Maven ToolChains的使用。
    2021-06-06
  • Spring使用注解方式實(shí)現(xiàn)創(chuàng)建對(duì)象

    Spring使用注解方式實(shí)現(xiàn)創(chuàng)建對(duì)象

    這篇文章主要介紹了Spring使用注解方式實(shí)現(xiàn)創(chuàng)建對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-02-02
  • 詳解Java中的有參構(gòu)造方法與無(wú)參構(gòu)造方法

    詳解Java中的有參構(gòu)造方法與無(wú)參構(gòu)造方法

    這篇文章主要詳細(xì)介紹了Java中有參構(gòu)造方法與無(wú)參構(gòu)造方法,文中有詳細(xì)的代碼示例,讓大家清晰明了的了解到有參構(gòu)造方法與無(wú)參構(gòu)造方法、以及應(yīng)用,需要的朋友可以參考下
    2023-06-06
  • Java虛擬機(jī)之雙親委派機(jī)制詳解

    Java虛擬機(jī)之雙親委派機(jī)制詳解

    這篇文章主要為大家介紹了Java虛擬機(jī)之雙親委派機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12

最新評(píng)論