java——Maven

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