初学者如何学习Maven

个人感觉掌握Maven使用的核心是掌握maven插件的使用,以及掌握maven的依赖和依赖的优化,暂且不说maven仓库方面

先说说怎么样来快速掌握一个陌生插件的使用方式

在此之前需要学会使用maven的help插件,掌握了这个插件后就可以快速学会如何

先看看help插件的几个目标:

mvn help:effective-pom 可以查看有效的pom 是父pom超级pom和子pom最终组合成的pom文件

mvn help:effective-settings 查看有效的settings文件 maven会在用户的home目录 的.m2下创建settings.xml文件 这个文件的设置用来覆盖全局设置的 home目录在不同的系统下是不一样的 .m2里面的点在linux下代表的是隐藏目录 在windows下不会隐藏

mvn help:active-profiles 查看激活的profile

help插件有很多目标命令 其实掌握了最关键的一个 其他的都可以记住

mvn help:describe 插件描述的命令 通过这个命令你可以知道 某个插件有多少目标 每个目标的详细用法 可以设置哪些参数

help:describe 的用法是这样的 -Dplugin=<插件名或者插件前缀或者插件的完整标识>  -Dfull 加上了-Dfull就会显示这个插件的完整描述

要想查看目标的命令可以使用help插件的help目标 这个目标要设置两个参数 -Ddetail=true -Dgoal=<目标的名字>

这样就可以查看这个目标后面可以跟哪些参数 参数是用来干什么的

到这里插件的使用方法基本可以知道怎么获得了 只要英文有点基础应该不是问题

这里说个比较关键的插件 maven-dependency插件

如果不知道这个插件的使用方法 那么上面说的help插件就派上用场了

mvn dependency: resolve查看所有依赖的jar文件

mvn dependency:tree用树的形式显示依赖的jar文件

mvn dependency:analyze 分析对所有的jar文件的依赖 来显示使用了哪些没有声明的依赖,和哪些 声明了但没有使用的依赖,这个插件的目标用来对pom文件进行优化

说道这里就简单说一下maven的pom文件的优化

优化主要是针对多模块的项目,

优化从两点入手,

第一是:优化一个pom文件内 的重复依赖,

第二是:一个是优化兄弟模块之间的依赖,将兄弟模块里面重复的依赖提到父模块中

在优化的时候要注意 使用dependency:analyze 把里面显示的直接依赖,尽量显式的在pom文件内声明,因为不这样做,会留下潜在的问题,举个简单的例子:模块A依赖与a.jar文件 a.jar文件使用了b.jar文件 模块B也使用了b.jar文件在模块A添加依赖的时候 因为maven的传递依赖管理 会将b.jar文件也加在到classpath下 这样b理论上就不用声明对b.jar的依赖了,但是往长远的看一下 加入有一天A模块进过了改进不再需要对a.jar文件的依赖,这样依赖就删除了对a.jar依赖的声明,同时a.jar文件所依赖的jar文件也会从classpath中移除,此时项目就会出问题了,应为需要的b.jar不存在会导致模块B无法正常工作这就是不显式声明一个直接依赖隐藏的后果!

还有一个就是在pom文件内充分利用maven的隐式变量和系统变量

饮食变量主要包括三个env project settings 隐式变量可以通过${env.XXX}的形式来调用环境变量里面的变量值,如jdk的安装目录

系统是java.lang.System的getProperties()方法内的那些键值 这些键值都被暴露为pom的属性

今天就先总结这么多了!希望对初学maven的人有帮助

猜你喜欢

转载自mrchai.iteye.com/blog/977872