Apache Maven
项目管理及自动构建工具
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。
開發者 | Apache软件基金会 |
---|---|
当前版本 |
|
源代码库 | |
编程语言 | Java |
操作系统 | 跨平台 |
类型 | 构建自动化 |
许可协议 | Apache许可证 2.0 |
网站 | maven |
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(页面存档备份,存于互联网档案馆) (英文)
參考資料编辑
- ^ Release Notes – Maven 3.9.6.
- ^ Index of /maven2/. [2009-04-15]. (原始内容存档于2018-09-17).
- ^ Laugstol, Trygve. MojoHaus Native Maven Plugin. [2022-07-26]. (原始内容存档于2016-10-29).
- ^ IBiblio Resolver | Apache Ivy™. [2022-07-26]. (原始内容存档于2021-06-16).
- ^ Reproducible/Verifiable Builds - Apache Maven - Apache Software Foundation. cwiki.apache.org. [2022-07-26]. (原始内容存档于2022-07-26).
- ^ Reproducible Builds in Java - DZone Java. dzone.com. [2022-07-26]. (原始内容存档于2021-05-06).
外部链接编辑
- Maven项目官方网站(页面存档备份,存于互联网档案馆)(英文)
- Maven 2新手教程:Maven 2用户练习指南- 教程在 (页面存档备份,存于互联网档案馆)(英文)
- 完整参考(页面存档备份,存于互联网档案馆),一本已出版的并可免费在线阅读的书(英文)
- 用Maven 2构建Web应用程序(英文)
- Maven 2 POM揭秘(页面存档备份,存于互联网档案馆) - 文章在JavaWorld(英文)
- 在你的POM中验证依赖(英文)
- Maven的历史(页面存档备份,存于互联网档案馆)(英文)
- 用于PHP的Maven(页面存档备份,存于互联网档案馆)(英文)
🔥 Top keywords: Baike: 首页Special:搜索淚之女王不夠善良的我們逆天奇案2金智媛2024年花蓮地震921大地震金秀賢 (男演員)NewJeans破墓习近平承欢记背着善宰跑ILLIT閔熙珍春色寄情人BABYMONSTER乘風2024六四事件权威主义九龍城寨之圍城城市猎人排球少年!!HYBE顧立雄排球少年!!角色列表BOYNEXTDOOR末日愚者與鳳行宁安如梦美少女万华镜系列謝京穎德安傑洛·羅素迷宮飯Zico (歌手)鄭靚歆王美花劍星周處除三害 (電影)中華民國中华人民共和国机动战士GUNDAM SEED FREEDOMWIND BREAKER—防風少年—安東尼·布林肯幕府將軍 (2024年電視劇)Energy (組合)邊佑錫日本葬送的芙莉蓮Seventeen (組合)三体 (小说)LE SSERAFIM白鹿 (演員)笑看風雲支配物种无用的谎言老狐狸范雲 (臺灣)毛泽东臺灣地震列表逆天奇案香港張廖萬堅P站陈吉宁中華航空140號班機空難賭場風雲(G)I-DLE徐巧芯妮妃雅張書偉寄生獸:灰色部隊黃道十二宮葉丙成草榴社区怪獸8號搜查班長1958許美靜特技玩家打天下2林依晨戀愛兄妹范曾鈴木亮平神舟十八号張員瑛陳昊宇傅崐萁蔡奇李主儐朴成焄三流之路許瑋甯少年歌行习明泽文化大革命氣象戰 (電影)Twitter