Apache Maven,是一個軟體(特別是Java軟體)專案管理及自動構建工具,由Apache軟體基金會所提供。Maven也可被用於構建和管理各種專案,例如C#,Ruby,Scala和其他語言編寫的專案。Maven曾是Jakarta專案的子專案,現為由Apache軟體基金會主持的獨立Apache專案。
Maven解決了軟體構建的兩方面問題:一是軟體是如何構建的,二是軟體的依賴關係。不同於Apache Ant等早期工具,Maven設定了構建流程的標準,在此之外只需要指定例外情況。XML檔案描述了正在構建的軟體專案、它對其他外部模組和組件的依賴關係、構建順序、目錄和所需的外掛程式。該檔案通常有預設的目標任務,例如代碼編譯和打包。Maven從一個或多個代碼倉庫(例如Maven 2 Central Repository)動態地下載Java庫與Maven外掛程式,並將其儲存在本地快取區中[2]。
Maven是以基於外掛程式的架構構建的,這使其能夠使用任何能用標準輸入控制的應用程式。Maven 2同時維護了為C/C++準備的原生外掛程式[3]。
儘管Gradle和sbt等替代技術並不依賴於XML,但他們仍然保留了Maven引入的關鍵概念。Apache Ivy還開發了一個專用的依賴管理器,同時支援Maven倉庫[4]。
範例
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(頁面存檔備份,存於網際網路檔案館) (英文)
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.