Maven
2020-02-16 本文已影响0人
凯凯frank
常用命令
mvn -v 查看maven版本
mvn compile 编译,将java源文件编译成class文件
mvn test 执行test目录下的测试用例
mvn package 将java工程打成jar包
mvn clean 清除target文件夹
mvn install 将当前项目安装到maven的本地仓库中
mvn clean -Dmaven.test.skip=true -U
跳过测试用例
传递依赖和排除依赖
传递依赖:如果我们的项目引入了一个jar包,而改jar包又引用了其他jar包。那么默认情况下,项目编译是,maven会把直接引用和间接引用的jar包都下载到本地(~/.m2/repository)
排除依赖:如果我们只想下载直接引用的jar包,在pom.xml中做如下配置
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.94.17</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖冲突
若项目中多个jar同时引用了相同的jar时,会产生依赖冲突。Maven采用了两种避免冲突的策略
- 短路优先
本项目 -> A.jar -> B.jar ->X.jar
本项目 -> C.jar ->X.jar
X.jar由C.jar引入 - 声明优先:若引用路径长度相同,在pom.xml中谁先被声明,就使用谁
本项目 -> A.jar ->X.jar
本项目 -> C.jar ->X.jar
X.jar由A.jar引入
多模块项目/聚合
1.jpg2.jpg
父模块使用dependencyManagement标签声明依赖