Maven
最近自己在学习maven,好记性不如烂笔头,将自己第一次配置的过程与学习到的知识点记录下来。
maven下载地址:http://maven.apache.org/download.cgi
这里需要注意的:
如果jdk版本不够执行maven命令时会报错
下载后我选择将文件解压到D盘,配置环境变量
M2_HOME,MAVEN_HOME(解压文件对应地址)
path中配置%M2_HOME%\bin
完成配置后,cmd中执行mvn -version输出信息
配置成功。
maven核心是pom.xml(基于项目的建立模型),maven官网描述:Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
在maven中,坐标是jar包的唯一标识,maven通过坐标在项目中找到以来的jar。groupId和artifactId构成了一个jar包的坐标。groupId:项目名 artifactId:模块名
基本的maven指令:compile:编译 test:测试 执行test目录下面的测试用例 package:打包 jar或war形式 install:安装 将当前项目放置到maven的本地仓库中供其他人使用
maven主要是解决jar包依赖的问题,有两点要注意:
传递依赖 与 排除依赖
传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和简洁引用的Jar包都下载到本地。
排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中做如下配置:(将需要排除的Jar包的坐标写在中)
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
关于依赖冲突:
maven采用了两种避免冲突的方法:1短路优先
本项目——>A.jar——>B.jar——>C.jar——>X.jar 本项目——>D.jar——>X.jar
最终maven会选择D依赖的X.jar
2声明优先 当引用路劲长度相同时,pom.xml中谁先被声明,就使用谁。

浙公网安备 33010602011771号