Apache Maven

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Apache Maven
開發者Apache軟件基金會
當前版本
  • 3.9.6 (2023年12月1日;穩定版本)[1]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
編程語言Java
操作系統跨平台
類型構建自動化
許可協議Apache許可證 2.0
網站maven.apache.org(英文)
Maven中心倉庫中的組建數目呈指數級增長

Apache Maven,是一個軟件(特別是Java軟件)項目管理自動構建工具,由Apache軟件基金會所提供。Maven也可被用於構建和管理各種項目,例如C#RubyScala和其他語言編寫的項目。Maven曾是Jakarta項目的子項目,現為由Apache軟件基金會主持的獨立Apache項目。

Maven解決了軟件構建的兩方面問題:一是軟件是如何構建的,二是軟件的依賴關係。不同於Apache Ant等早期工具,Maven設定了構建流程的標準,在此之外只需要指定例外情況。XML文件描述了正在構建的軟件項目、它對其他外部模塊和組件的依賴關係、構建順序、目錄和所需的插件。該文件通常有預設的目標任務,例如代碼編譯和打包。Maven從一個或多個代碼倉庫(例如Maven 2 Central Repository)動態地下載Java庫與Maven插件,並將其存儲在本地緩存區中[2]

Maven是以基於插件的架構構建的,這使其能夠使用任何能用標準輸入控制的應用程序。Maven 2同時維護了為C/C++準備的原生插件[3]

儘管Gradlesbt等替代技術並不依賴於XML,但他們仍然保留了Maven引入的關鍵概念。Apache Ivy還開發了一個專用的依賴管理器,同時支持Maven倉庫[4]

Apache Maven也包括對可重現構建的支持[5][6]

示例[編輯]

Maven項目使用項目對象模型(Project Object Model,POM)來配置。

項目對象模型存儲在名為 pom.xml 的文件中。

以下是一個簡單的示例:

<project>
  <!-- model version is always 4.0.0 for Maven 2.x POMs -->
  <modelVersion>4.0.0</modelVersion>
  
  <!-- project coordinates, i.e. a group of values which
       uniquely identify this project -->
  
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0</version>

  <!-- library dependencies -->
  
  <dependencies>
    <dependency>
    
      <!-- coordinates of the required library -->
      
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      
      <!-- this dependency is only used for running and compiling tests -->
      
      <scope>test</scope>
      
    </dependency>
  </dependencies>
</project>

參見[編輯]

補充閱讀[編輯]

有免費的PDF供下載和在線閱讀:http://www.sonatype.com/documentation/books(頁面存檔備份,存於網際網路檔案館(英文)

參考資料[編輯]

  1. ^ Release Notes – Maven 3.9.6. 
  2. ^ Index of /maven2/. [2009-04-15]. (原始內容存檔於2018-09-17). 
  3. ^ Laugstol, Trygve. MojoHaus Native Maven Plugin. [2022-07-26]. (原始內容存檔於2016-10-29). 
  4. ^ IBiblio Resolver | Apache Ivy™. [2022-07-26]. (原始內容存檔於2021-06-16). 
  5. ^ Reproducible/Verifiable Builds - Apache Maven - Apache Software Foundation. cwiki.apache.org. [2022-07-26]. (原始內容存檔於2022-07-26). 
  6. ^ Reproducible Builds in Java - DZone Java. dzone.com. [2022-07-26]. (原始內容存檔於2021-05-06). 

外部連結[編輯]