美文网首页
Maven进阶 | POM文件、生命周期及插件

Maven进阶 | POM文件、生命周期及插件

作者: 拾壹北 | 来源:发表于2017-03-16 17:29 被阅读95次

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编号.

相关文章

网友评论

      本文标题:Maven进阶 | POM文件、生命周期及插件

      本文链接:https://www.haomeiwen.com/subject/yipjnttx.html