page contents

Maven进阶篇教程,带你深入掌握Maven多模块管理

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件,Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。

Maven项目对象模型(POM),可以过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件,Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。

attachments-2023-03-fIyYwHDm6400509a616a0.jpg

由于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技术交流群一起交流学习哦。

attachments-2023-03-wfGPma4p640051113598d.jpg

  • 发表于 2022-01-12 09:32
  • 阅读 ( 540 )
  • 分类:Java开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章