Maven 依赖管理与生命周期

依赖:指当前项目运行所需要的 jar 包,一个项目可以设置多个依赖
依赖配置
- 格式 
依赖传递
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系 
- 间接依赖:模块也可当作依赖进行传递 
- 代码 
- 效果 
 
 - 冲突问题 
- 路径优先:当依赖中出现相同资源时,层级越浅,优先级越低 
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的 
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的 
可选依赖
指对外隐藏当前所依赖的资源(不透明)
- optional:默认 false 
- project02 中就看不到 project03 中所使用的依赖了 
 
 排除依赖
- 主动断开依赖的资源,被排除的资源无需指定版本 
- project02 断开 project03 中的 log4j 
依赖范围
- 依赖的 jar 默认情况可以在任何地方使用,可以通过 scope 标签设定范围 
- 作用范围 
- 主程序范围(main 文件夹内) 
- 测试程序范围(test 文件夹内) 
- 是否参与打包(package 指令范围内) 
生命周期与插件
构建生命周期
- 指的是一次构建过程经历了多少个事件 
- 运行哪一项就会执行哪一项上面的所有事件,例如:执行 test 就会执行 test 直上的所有事件 
- clean:清理工作 pre-clean:执行需要在 clean 之前完成的工作 clean:移除所有上一次构建生成的文件 pro-clean:执行需要在 clean 之后立刻完成的工作 
- default:核心工作,如编译、测试、打包、部署等 validate:校验 compile:编译 test:测试 package:打包 verify:验证 install:安装 deploy:部署 
- site:产生报告,发布站点等 site:生成项目的站点文档 
插件
- 与生命周期中的阶段绑定,在执行到对应生命周期时执行对应的插件功能 
- 例:打不同阶段的 jar 包 
版权声明: 本文为 InfoQ 作者【Emperor_LawD】的原创文章。
原文链接:【http://xie.infoq.cn/article/94a5a5056c393ece9e153c569】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。











 
    
评论