个人感觉掌握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的人有帮助
分享到:
相关推荐
一个基础的maven项目,供给初学maven的同学检阅如何配置maven项目,采用jdk1.8,maven3.5.2,使用阿里云maven服务器导入jar包,内涵基础ssm的pom文件,包括跨域访问,供给大家学习交流使用。
Maven学习极品,对于初学者而言非常好的资料,极力推荐
Maven实战,给初学者学习的好东西,快来下载吧
针对对初学者使用maven的遇到的问题的一些讲解 和学习的总结
适合初学者的maven学生数据库小项目,后端springboot,前端bootstrap+angularjs,项目结构清晰,适合初学者借鉴学习。运行前需要修改application.properties中的数据源配置,有问题email:940457307@qq.com
maven 初学 资料 初学者 打包等
学习基于Maven的SSM整合完成的项目 详情见:https://blog.csdn.net/key_768/article/details/104004768和 https://blog.csdn.net/key_768/article/details/104040076 学习用,自取
idea maven 教程 ,供初学者使用,这是本人用的上传上来的。
Maven学习基础文档,供初学者使用,快速掌握maven技术。
简介的一个SSM项目的搭建,非常适用于 初学者。使用的是maven 管理jar 包
简单Maven SpringMVC例子,合适初学者学习,自己学习时写的列子,保证正常运行
struts2.3.15 spring3 hibernate...并且也适合初学者学习使用。 此例中,数据库配置的是mysql,并且给了一个简单的脚本。其他数据自己在配置文件里改一下配置。 例子里的JAR包因为maven会自动下,我就没有上传了。
SpringBoot 框架 demo 适合初学者 学习,零配置。maven 工具搭建。
初学者教程 - 28 分钟内的示例 安装 Eclipse 和 Java 课程大纲 我们将使用 Handson Real World 示例来了解 Maven 可以做什么。 我们将了解 Maven 如何使应用程序开发人员的生活变得轻松。 我们将学习 Maven 如何帮助...
包含标准的maven学习资料,通俗易懂,方便初学者学习
一个简单的maven web 应用项目。 适合初学者环境搭建maven web环境,学习web应用开发。后面会继续更新代码。
一个maven的学习文档,简单易懂,适合初学者学习,供大家学习了
刚学习Java的时候找jar包有点繁琐,后来才知道可以用maven直接导入,现在把maven中常用的jar包库上传,方便初学者。加油(ง •_•)ง
本项目为初学者学习dubbo提供参考,项目使用maven+spring+dubbo 有关使用请参考我的博客
非常适合需要maven管理项目的初学者学习使用!