Maven相关总结

配置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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值