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

Maven插件之Dependency:analyze的使用

 更新時間:2024年10月06日 15:35:06   作者:筆墨桑  
在軟件開發(fā)中,合理管理項目依賴是保證構建穩(wěn)定性的關鍵,Maven作為流行的項目管理工具,提供了Dependency插件來幫助開發(fā)者分析和優(yōu)化項目依賴,通過執(zhí)行dependency:analyze指令,可以辨識項目中使用的、未聲明的、和未使用的依賴項

前言

完成新功能的開發(fā)后,在發(fā)包前組長告訴我要檢查maven工程的依賴,并告訴我相關指令,此文記錄一下使用方式

正文

簡介

Maven官網(wǎng)之Dependency插件

Dependency插件提供了操縱artifact的能力,可以復制以及拆包本地或遠程倉庫的artifact到指定地點。

Dependency有很多的goal,這里介紹的是dependency:analyze

用途

用來分析項目的依賴并確定以下內(nèi)容

  • 使用的并且聲明的依賴
  • 使用的但是未聲明的依賴
  • 未使用的但是聲明的依賴

在文章最后的《分析結果以及改進方案》章節(jié)中會介紹具體的含義

使用方法

前提:保證電腦已經(jīng)下載了Maven,以及已經(jīng)配置好Maven的環(huán)境變量

通過命令行

  1. 打開命令行,進入Maven項目或模塊的根目錄,即包含pom.xml的目錄(如果該目錄不包含pom.xml則會報錯)
  2. 執(zhí)行以下指令
mvn dependency:analyze

等待執(zhí)行完畢后,會看到類似如下輸出

通過idea

點擊idea右上方Add Configuration...按鈕(不同版本之間可能有差異)

在彈出窗口中點擊左上角+,選擇Maven

指定項目路徑Working directory為想要分析的Maven項目/模塊。

在命令行Command line中輸入dependency:analyzeIDEA中執(zhí)行Maven指令并不需要以mvn開頭,IDEA會自動添加)

點擊IDE右上方的執(zhí)行rundebug開始執(zhí)行

等待執(zhí)行完畢后,會看到類似如下輸出

分析結果以及改進方案

最開始的《用途》章節(jié)中曾引出,depencency:analyze插件會分析如下內(nèi)容

  • 使用的并且聲明的依賴
  • 使用的但是未聲明的依賴
  • 未使用的但是聲明的依賴

我們需要根據(jù)分析結果進行改進優(yōu)化:

使用的并且聲明的依賴

該情況屬于正?,F(xiàn)象,在分析結果中也不會有任何體現(xiàn)。

使用的但是未聲明的依賴

表示依賴的a.jar又引用了其他的b.jar,導致我們間接的依賴了b.jar,但是我們并沒有在pom.xml中顯示的進行依賴。這種情況是不推薦的,原因是我們可能在項目中了b.jar的方法,萬一哪天對a.jar進行升級,而升級后的a.jar不依賴了b.jar,那么我們的程序就會報錯。

改進辦法就是顯示的依賴b.jar,如前面的例子中出現(xiàn)的

改進方案為在pom.xml中添加對spring-jdbc以及spring-tx的依賴

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.1.9.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>5.1.9.RELEASE</version>
</dependency>

未使用的但是聲明的依賴

表示在pom.xml中添加的依賴在實際程序中并沒有用到

改進方案為移除無用的依賴,但是有一點除外,就是我們聲明scopetest的依賴,也就是單元測試中使用到的,這些不能夠移除。如

我們只能夠將springboot的依賴移除,因為在實際中并沒有使用到,但是其余的以:test結尾的依賴是不能移除的,在單元測試中會使用到他們

總結

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

相關文章

  • Java責任鏈模式詳解

    Java責任鏈模式詳解

    責任鏈模式(Chain?of?Responsibility?Pattern)是一種行為型設計模式,它用于將請求的發(fā)送者和接收者解耦,使得多個對象都有機會處理這個請求,本文將詳細介紹?Java?中的責任鏈模式,包括其概念、結構、實現(xiàn)方式以及應用案例等,需要的朋友可以參考下
    2023-05-05
  • SpringBoot使用@Async注解實現(xiàn)異步調(diào)用

    SpringBoot使用@Async注解實現(xiàn)異步調(diào)用

    這篇文章主要介紹了SpringBoot使用@Async注解實現(xiàn)異步調(diào)用,異步調(diào)用是相對于同步調(diào)用而言的,同步調(diào)用是指程序按預定順序一步步執(zhí)行,每一步必須等到上一步執(zhí)行完后才能執(zhí)行,異步調(diào)用則無需等待,程序執(zhí)行完即可執(zhí)行,可以減少程序執(zhí)行時間,需要的朋友可以參考下
    2023-10-10
  • 關于Object中equals方法和hashCode方法判斷的分析

    關于Object中equals方法和hashCode方法判斷的分析

    今天小編就為大家分享一篇關于關于Object中equals方法和hashCode方法判斷的分析,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • @Async異步線程池以及線程的命名方式

    @Async異步線程池以及線程的命名方式

    這篇文章主要介紹了@Async異步線程池以及線程的命名方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java接口返回參數(shù)按照請求參數(shù)進行排序方式

    java接口返回參數(shù)按照請求參數(shù)進行排序方式

    這篇文章主要介紹了java接口返回參數(shù)按照請求參數(shù)進行排序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java判斷字符串String是否為空問題淺析

    java判斷字符串String是否為空問題淺析

    這篇文章主要介紹了java判斷字符串String是否為空問題,有需要的朋友可以參考一下
    2014-01-01
  • MyBatis中resultMap和resultType的區(qū)別詳解

    MyBatis中resultMap和resultType的區(qū)別詳解

    這篇文章主要介紹了MyBatis中resultMap和resultType的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Spring Data中domain模塊的使用

    Spring Data中domain模塊的使用

    Spring Data是一個流行的數(shù)據(jù)訪問框架,本文主要介紹了Spring Data中domain模塊的使用,并展示如何使用它來優(yōu)化我們的數(shù)據(jù)訪問層,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置的詳細過程(Eclipse)

    openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置的詳細過程(Eclipse)

    這篇文章主要介紹了openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置(Eclipse),演示基于JDBC開發(fā)的主要步驟,會涉及創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)等,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Java多線程 Producer and Consumer設計模式

    Java多線程 Producer and Consumer設計模式

    這篇文章主要介紹了Java多線程 Producer and Consumer設計模式,producer是生產(chǎn)者的意思:指生產(chǎn)數(shù)據(jù)的線程,consumer是消費者的意思,指的是使用數(shù)據(jù)的線程,下文圍繞Producer及Consumer展開話題,需要的朋友可以參考一下
    2021-10-10

最新評論