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】协议,转载请保留原文出处及本版权声明。
评论