天天看點

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

一、Maven 插件

我們之前學習 Maven 指令的時候,都是通過 DOS 視窗手動敲,但是不能說用了 IDE 工具之後,我們還是手動敲,這裡這些個 IDE 廠家給我們提供了便利,來看一下。

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

在 Eclipse 中,我們随便找一個 Maven 項目,滑鼠右鍵就可以在 Run As 找到這些個 Maven 指令,大家可以自己嘗試使用一下,這裡就不展示了。

同樣,來看一下 IDEA 的。

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理
Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

IDEA 中有兩個,一個是 Lifecycle,一個是 Plugins,我們一般使用上面的 Lifecycle。

IDEA 中以前複制到包裡面之後就會自動進行下載下傳,後來版本更替後,這個功能就變成手動的了。

Eclipse 一直都是複制進去,自動下載下傳。

二、jar 依賴關系

我們用 Eclipse 随便打開一個 Maven 的項目,打開 pom.xml 檔案。

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

選擇這個 Dependency Hierarchy

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

我們可以在這裡看到整個項目的 jar,以及依賴關系,我們用其中一個來看。

slf4j-log4j 這個 jar 包,下面有兩個 jar,一個是 slf4j-api,還有一個是 log4j。這就是說明,slf4j-log4j 這個 jar 依賴 下面的兩個 jar,而且 Maven 也會自動把這個依賴的 jar 也幫我們下載下傳下來。

來看一下項目的 jar 包管理。

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

三、依賴管理

Maven 的一個核心就是依賴管理,但是哈,如果 A 依賴 B,B 依賴 C,那麼我們這個項目中肯定會有三個 jar 包。

但是現在有了另外一個 D 包,D 也依賴 C,那麼我們項目就變成有兩個東西依賴了 C。

那我們項目到時候是不是要引入兩個 C 呢?

答案肯定是不會的,Maven 采用了一種最近原則,它直接把 D 下面的 C 直接引入進來,而 AB 的那個線的 C 就不弄進來了。

但是哈,有的時候我們這個 C 可能有很多版本,可能有的時候要用版本高的,有的時候用版本低的,這裡我們還可以進行管理。

來看一個圖

Apache Maven 3.6.3 _ 10. Maven 插件 & jar 包依賴關系管理一、Maven 插件二、jar 依賴關系三、依賴管理

這個是某一個項目中引入了 swagger,但是哈,我們不想要 swagger 下面的 swagger-annotations 和 swagger-models,我們可以使用 exclusion 标簽進行标記。

然後我們在下面自己定義兩個 其他版本的 swagger-annotations 和 swagger-models。

這樣我們就可以抛棄原有版本,自己替換别的版本了。

這一篇的東西比較少,大家自己看一下。

有問題可以聯系我:QQ 2100363119,歡迎大家通路我的個人自願網站:https://www.lemon1234.com

最近網站在改造中,歡迎各位提出意見。