配置Maven环境变量
1.新建环境变量,命名为MAVEN_HOME,值为Maven解压缩后的根目录
2.添加%MAVEN_HOME%\bin到Path中
3.打开cmd命令行,输入mvn -v测试是否配置成功
注:Maven解压路径中不能包含中文和空格
Maven修改默认本地库文件夹
1.打开Maven安装目录->conf文件夹->settings.xml
2.修改其中<localRepository>标签中的内容 改为想要指定为仓库的路径
Maven导入Oracle驱动包(ojdbc14.jar为例)
cmd->切换到下载的驱动包所在文件夹
输入以下命令:
mvn install:install-file -DgroupId=com.oracle
-DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar
-Dfile=F:\oracle\ojdbc14-10.2.0.4.0.jar
mvn install(安装):install-file(安装文件)
-DgroupId(公司名称)=com.oracle(一般写com.oracle)
-DartifactId(项目名称)=ojdbc14 引用依赖时使用
-Dversion(版本号)=10.2.0.1.0 区分其它版本使用 可以随意填写
-Dpackaging(打包方式)=jar
-Dfile(文件)=F:\oracle\ojdbc14-10.2.0.4.0.jar 这里写下载的驱动包的路径+文件名 如果cmd当前在驱动包所在文件夹可以省略路径直接写文件名
依赖传递冲突
传递:
在引用依赖时,可能被引用依赖会引用其它依赖,这种依赖就是传递依赖
如:spring-context依赖spring-core,spring-aop,在引用spring-context时会传递依赖spring-core,spring-aop.
冲突:
A依赖B,C依赖B,当引入A和C的时候会传递依赖两个B,造成冲突.
解决方案:
1.Maven自带调优原则:
1.第一声明者优先:如A和C都依赖B时,先声明A就会使C传递依赖的B失效,反之同理
2.路径近者优先,在传递依赖时会有多层路径,
如:spring-context和spring-aop都依赖spring-core,但spring-context又依赖spring-aop,此时spring-aop中的spring-core就失效了();
又或者直接引用spring-core时,不管spring-context还是spring-aop,其中的springcore都会失效;
2.排除依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.7.RELEASE</version>
<!--排除依赖: 把不使用的项目排除掉-->
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-context</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
3.锁定版本:
1.版本抽取:
新建一个标签,标签体中提取所引用的依赖的版本号
如:<spring-version>5.0.4</spring-version> 标签可以随便写 方便阅读即可
在引用依赖时,版本号标签中填写${spring-version};
2.依赖管理器:
<dependencyManagement>
<dependencies>
<dependency>只能指定版本,不能引入依赖</dependency>
</dependencies>
</dependencyManagement>