参考资料:《Maven实战》
1.使用Maven的过程中遇到了不少问题,为了方便快速定位问题,自己系统学习了Maven仓库,生命周期,插件,坐标和依赖等,下面简单谈谈。
(1)Maven坐标和依赖:
Maven世界构件太多,为了减少寻找jar包等相对机械和耗时的问题,引入的坐标机制。
坐标包含的元素:groupId,artifactId,version,packaging,classifier。
依赖包含的元素:type,scope,optional,exclusions,这里需要说的一点是,在实际项目中使用exclusions的时候,经常会出现依赖的情况会比较复杂,使用exclusions往往效果不是很好,所以使用的时候注意下。第二,依赖的传递性这块比较烦,但是只有搞清楚这块的关系,才能快速定位依赖版本等问题,我的经验是通过删除jar包,看下载依赖包的顺序,定位依赖问题比通过打印依赖树要快。
(2)仓库
仓库是为了减少引入大量重复依赖而构建的一套机制,仓库的相关的配置可以在setting.xml中找到。
本地仓库:缓存常用的构件到本地。
中央仓库:统一管理当前流行的所有的构件。
私服:局域网的远程仓库,供局域网内部人员使用。
下载依赖的顺序:坐标确定——>版本确定——>本地仓库——>远程仓库
(3)生命周期和插件
为了统一和规范编译,测试打包等过程引入的概念和插件。 生命周期(是一个抽象概念)和插件(具体执行任务)相辅相成。
生命周期:三个阶段分别为clean,default,site(未使用过),这样分是因为这三个周期的调用过程互不影响。
clean的三个阶段:pre-clean,clean,post-clean。
default:简单的列举几个比较重要的阶段,compile,package,install,deploy。
site:简单的了解过一点。
这里简单的对最近学习maven相关做个小总结,对非常基础的东西就不一 一展开讲了。