pom.xml文件:
常用命令:
如果要使用某个项目作为另一个项目的依赖,先将项目打包package后install安装到本地仓库中,在另一个项目的pom.xml
文件配置好dependcy标签就可以了。
生命周期:
打包源码的插件加入:
打包时是会按顺序执行源码的,包括编译、测试、打包;
pom.xml文件解析:
依赖传递:
a依赖b,b依赖c,这样a就会传递依赖到c,如果要把c排除掉,可以在a中的pom.xml使用exclusions标签进行排除依赖,如:
<exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions>
依赖冲突:a依赖b,b依赖c,同时b、c依赖不同版本的d,这样a依赖的是哪个版本的d(短路原则,依赖b里的d版本);
a依赖b,a依赖c,同时b、c同时依赖不同版本的d,这样a依赖的是哪个版本的d(声明优先原则,看a里pom.xml文件a依赖b或c的声明哪个在前就用哪个版本的d)
聚合:如果有多个项目,我们要对这写项目打包并存入本次仓库中,我们就可以采用聚合的方式让它一次性完成工作,首先要新建一个maven项目,在pom.xml中将packaging标签设置为pom再使用modules标签:如:
之后只要运行这个maven项目clean install就可以了;
继承:
如果有多个项目都依赖a,而a的版本改动又比较频繁,如果每次a的版本改动就需要到每个项目中的pom.xml进行版本修改,就会很麻烦;
继承就很好地解决了这个问题;
首先还是要新建一个maven项目,packaging改为pom,也就是说这个项目只是单纯地当做是容器;
在这个maven项目中设置properties和dependcyManagement标签:
在别的多个项目中使用parent标签,绑定好这个新建容器的maven项目坐标:
后面若要改变版本就只需要在这个父容器里的properties标签进行修改就好。
原文:https://www.cnblogs.com/lzj-learn/p/12838056.html