免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2510 | 回复: 0
打印 上一主题 下一主题

初学者如何学习Maven [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-29 13:15 |只看该作者 |倒序浏览
初学者如何学习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的人有帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP