Maven项目对象模型(POM),可以过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件,Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。
由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的项目。由于Maven的面向项目的方法,许多Apache Jakarta项目发文时使用Maven,而且公司项目采用Maven的比例在持续增长。
Maven的功能
Maven能够帮助开发者完成以下工作:
构建
文档生成
报告
依赖
SCMs
发布
分发
邮件列表
约定配置
Maven提倡使用一个共同的标准目录结构,Maven使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:
目录
目的
${basedir}
存放pom.xml和所有的子目录
${basedir}/src/main/java
项目的java源代码
${basedir}/src/main/resources
项目的资源,比如说property文件,springmvc.xml
${basedir}/src/test/java
项目的测试类,比如说Junit代码
${basedir}/src/test/resources
测试用的资源
${basedir}/src/main/webapp/WEB-INF
WEB-INF web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
${basedir}/target
打包输出目录
${basedir}/target/classes
编译输出目录
${basedir}/target/test-classes
测试编译输出目录
Test.java Maven
只会自动运行符合该命名规则的测试类
~/.m2/repository
Maven默认的本地仓库目录位置
Maven的特点
项目设置遵循统一的规则。
任意工程中共享。
依赖管理包括自动更新。
一个庞大且不断增长的库。
可扩展,能够轻松编写Java或脚本语言的插件。
只需很少或不需要额外配置即可即时访问新功能。
基于模型的构建−Maven能够将任意数量的项目构建到预定义的输出类型中,如JAR,WAR或基于项目元数据的分发,而不需要在大多数情况下执行任何脚本。
项目信息的一致性站点−使用与构建过程相同的元数据,Maven能够生成一个网站或PDF,包括您要添加的任何文档,并添加到关于项目开发状态的标准报告中。
发布管理和发布单独的输出−Maven将不需要额外的配置,就可以与源代码管理系统(如Subversion或Git)集成,并可以基于某个标签管理项目的发布。它也可以将其发布到分发位置供其他项目使用。Maven能够发布单独的输出,如JAR,包含其他依赖和文档的归档,或者作为源代码发布。
向后兼容性−您可以很轻松的从旧版本Maven的多个模块移植到Maven 3中。
子项目使用父项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号,
并行构建−编译的速度能普遍提高20-50%。
更好的错误报告−Maven改进了错误报告,它为您提供了Maven wiki页面的链接,您可以点击链接查看错误的完整描述。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
关注下方微信公众号:java圈子,获取价值999元全套Java入门到进阶的学习资料以及教程,还有java技术交流群一起交流学习哦。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!