聊聊 Apache Maven

文章最後更新於 2023 年 1 月 7 日

Apache Maven是一個軟件項目管理和自動化軟件建構工具。它使用XML格式的項目配置文件和一組在命令行中運行的指令,來控制軟件項目的建構、測試和部署。

以下是一些常用的Maven指令:

  • mvn clean: 刪除項目的target目錄,通常在建構項目之前使用。
  • mvn compile: 編譯項目的源代碼。
  • mvn test: 執行項目的測試。
  • mvn package: 將項目打包成可部署的格式(如JAR文件)。
  • mvn install: 將項目的可部署文件安裝到本地仓库,以便其他項目可以使用。
  • mvn deploy: 將項目的可部署文件發布到遠程仓库,以便其他項目可以使用。
  • mvn archetype:generate: 使用Maven類型插件生成一個新的項目骨架。
  • mvn dependency:tree: 顯示項目依賴關係的樹狀圖。

這些指令可以在命令行中直接運行,也可以在項目的pom.xml文件中作為插件執行。

此外,Maven還有許多其他插件可以用來自動化各種任務,如代碼分析、文檔生成、構建服務器配置等。

Maven依賴關係管理插件可以幫助你管理項目中使用的依賴項(即外部庫)。

你可以使用以下指令來管理依賴項:

  • mvn dependency:list: 顯示項目的依賴項列表。
  • mvn dependency:tree: 顯示項目依賴關係的樹狀圖。
  • mvn dependency:sources: 下載項目依賴項的源代碼。
  • mvn dependency:resolve: 解析項目的依賴項並將它們安裝到本地庫。
  • mvn dependency:purge-local-repository: 刪除本地仓库中所有解析過的依賴項。

你可以在項目的pom.xml文件中指定依賴項。例如,你可以使用以下代碼在項目中添加一個依賴項:

<dependencies>
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.10</version>
  </dependency>
</dependencies>

在這種情況下,Maven將會在運行mvn compilemvn package指令時自動解析和安裝這個依賴項。

你還可以使用<exclusions>元素來排除特定的依賴項,或者使用<scope>元素來控制依賴項的作用域。

此外,Maven依賴關係管理插件還提供了一些其他功能,如:

  • mvn dependency:analyze: 分析項目依賴項並提供有關未使用或過期依賴項的建議。
  • mvn dependency:go-offline: 將所有依賴項下載到本地倉庫,以便在沒有網絡連接的情況下運行Maven指令。
  • mvn dependency:resolve-plugins: 解析項目使用的Maven插件並將它們安裝到本地倉庫。

你可以在Maven官方文檔中了解更多有關依賴關係管理插件的信息:https://maven.apache.org/plugins/maven-dependency-plugin/

此外,你還可以使用Maven中央倉庫查找可用的依賴項:https://search.maven.org/

希望這些信息能幫助你了解Maven依賴關係管理插件的用法。

關於作者

卡哥
卡哥
大家好,我是 Oscar(卡哥)。曾任 Yahoo 資深工程師(Lead Engineer),也是高智商組織 Mensa 的會員,擁有超過 15 年的軟體開發經驗。職涯中曾參與 Yahoo 關鍵字廣告、電子商務與搜尋相關專案,近年則在虛擬貨幣交易所專注於大數據與 AI 資料服務,帶領團隊開發具影響力的產品與解決方案。

在工作之外,我熱愛音樂,平時喜歡彈吉他、創作與演奏;運動方面偏好羽球、高爾夫球,也投入在美股與虛擬貨幣的投資領域。最享受的,是透過交流與分享,把知識與經驗轉化成更多可能性。