Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。
Maven解决了软件构建的两方面问题:一是软件是如何构建的,二是软件的依赖关系。不同于Apache Ant等早期工具,Maven设定了构建流程的标准,在此之外只需要指定例外情况。XML文件描述了正在构建的软件项目、它对其他外部模块和组件的依赖关系、构建顺序、目录和所需的插件。该文件通常有预设的目标任务,例如代码编译和打包。Maven从一个或多个代码仓库(例如Maven 2 Central Repository)动态地下载Java库与Maven插件,并将其存储在本地缓存区中。
Maven是以基于插件的架构构建的,这使其能够使用任何能用标准输入控制的应用程序。Maven 2同时维护了为C/C++准备的原生插件。
尽管Gradle和sbt等替代技术并不依赖于XML,但他们仍然保留了Maven引入的关键概念。Apache Ivy还开发了一个专用的依赖管理器,同时支持Maven仓库。
Apache Maven也包括对可重现构建的支持。
示例
Maven项目使用项目对象模型(Project Object Model,POM)来配置。
项目对象模型存储在名为 pom.xml 的文件中。
以下是一个简单的示例:
4.0.0
com.mycompany.app
my-app
1.0
junit
junit
3.8.1
test
参见
- ,一种与Maven紧密结合的持续集成服务器
- 一种将XML转为可执行代码的工具
- ,可作为替代的Java依赖管理工具
- Gradle,一种基于约定优于配置的编译工具
- Hudson
*
补充阅读
*
: 有免费的PDF供下载和在线阅读:http://www.sonatype.com/documentation/books
參考資料
外部链接
- [http://maven.apache.org/ Maven项目官方网站]
- [http://docs.codehaus.org/display/MAVENUSER/The+Maven+2+tutorial Maven 2新手教程:Maven 2用户练习指南]- 教程在
- [http://www.sonatype.com/books/mvnref-book/reference/ 完整参考],一本已出版的并可免费在线阅读的书
- [https://web.archive.org/web/20110723234212/http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html 用Maven 2构建Web应用程序]
- [http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html Maven 2 POM揭秘] - 文章在JavaWorld
- [https://web.archive.org/web/20111004231853/http://www.mavenbrowser.com/pom-report.html 在你的POM中验证依赖]
- [http://maven.apache.org/background/history-of-maven.html Maven的历史]
- [http://www.php-maven.org/ 用于PHP的Maven]
评论 (0)