Maven进阶 | POM文件、生命周期及插件
2017-03-16 本文已影响95人
拾壹北
![](https://img.haomeiwen.com/i1844198/4b000594e5cb45e2.png)
0、POM文件进阶
- pom文件可以继承,以达到高效复用
- maven官方制定的superpom
- 所有的pom都会继承这个superpom
- superpom 中配置了:
中央仓库的地址,
插件仓库地址,
所有默认路径信息
maven生命周期和各个插件的绑定关系 - 公司扩展POM:
company suprule(RELEASE版本)线上规则的实时更新
|
company supom(qunar的顶级pom)
|
company-supom-generic(为后端项目提供配置)
|
qta-root(某个项目组内部自己定义的根配置)
1、Maven依赖冲突
-
maven2.0引入里传递性依赖的设计
-
Maven自身调节依赖冲突的方案:
最短路径优先
第一声明优先
Qunar的规则:强制显式处理依赖冲突 -
jar包版本冲突:
尽量使用更高的版本
尽量使用已知最稳定的版本
不要exclude,除非有理由充分
2、Maven常用工具命令
-
修改version
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
mvn versions:commit -
分析依赖
mvn dependency:tree
mvn dependency:list
mvn dependency:analyze # 分析依赖,据此优化 -
下载jar包源代码
mvn dependency:sources -
查看插件详情
mvn help:describe -Dplugin=enforcer -
查看当前项目的所有profile
mvn help:all-profiles -
arthetype
mvn archetype:generate -
查看有效的pom
mvn help:effective-pom -
查看系统配置
mvn help:system -
打包时跳过单元测试
mvn package -Dmaven.test.skip=true -
maven同ide的配合
mvn idea:idea
mvn eclipse:eclipse -
maven同web容器的配合
mvn tomcat:run
mvn jetty:run
3、Maven版本控制
-
版本的定义:采用GNU方案
<主版本>.<次版本>.<增量版本>-<里程碑版本>主版本:重大架构变更 次版本: 较大范围的功能增加和变化 增量版本: 日常bug修复或者小需求发布 快照版本用于开发过程中,jar包需要持续更新,不频繁修改version编号.