Apache Maven

出自Local Chinese Wikipedia
跳至導覽 跳至搜尋
Apache Maven
File:Apache Maven logo.svg
開發者Apache軟件基金會
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言Java
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統跨平台
      類型構建自動化
      許可協定Apache許可證 2.0
      網站maven.apache.org(英文)
      File:Maven repository artifact growth.png
      Maven中心倉庫中的組建數目呈指數級增長

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

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

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

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

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

      範例[編輯]

      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>
      

      參見[編輯]

      補充閱讀[編輯]

      • Van Zyl, Jason, Maven:明确的指南 first, 奧萊利: 468, 2008-10-01 [2011-07-24], ISBN 0596517335, (原始內容存檔於2010-08-27) (英文)
      有免費的PDF供下載和線上閱讀:http://www.sonatype.com/documentation/books(頁面存檔備份,存於互聯網檔案館(英文)

      參考資料[編輯]

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

      外部連結[編輯]