maven配置及相关问题解决

一.maven的下载

  1. 进入maven下载官网下载添加链接描述在这里插入图片描述

  2. 将下载文件保存到指定位置进行解压(这里解压在D:\code\java\apache-maven-3.6.3)

  3. 配置环境变量:MAVEN_HOME = D:\code\java\apache-maven-3.6.3在这里插入图片描述

  4. 再配置path:%MAVEN_HOME%\bin在这里插入图片描述

  5. 进入系统命令行输入 mvn -version,如图所示则配置成功在这里插入图片描述

二.本地maven仓库配置

  1. 将下载好的maven_repository.zip文件在指定目录解压(这里解压在D:\code\java\maven_repository)
  2. 配置settings.xml文件,打开apache-maven-3.6.3\conf\settings.xml文件
  3. 在setting.xml文件中添加
<localRepository>D:\code\java\maven_repository</localRepository>

在这里插入图片描述

  1. 在setting.xml文件中添加
	<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>       
    </mirror> 

在这里插入图片描述

  1. 在setting.xml文件中添加
	<profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven-compiler-source>1.8</maven-compiler-source>
        <maven-compiler-target>1.8</maven-compiler-target>
        <maven-compiler-compilerVersion>1.8</maven-compiler-compilerVersion>
      </properties>
    </profile>

在这里插入图片描述

三.IDEA配置maven

  1. 打开IDEA,点击右下角Configure配置setting
    在这里插入图片描述

  2. 设置maven路径
    在这里插入图片描述

  3. 设置到此完成

四.maven配置中出现的问题1

  1. 新建web项目时出现如下错误
    在这里插入图片描述

  2. 在IDEA里面 File --> Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> Runner 的VM Options 设置:

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

在这里插入图片描述

五.maven配置中出现的问题2

  1. 创建项目出现如下报红
    在这里插入图片描述

  2. 可点击上面clean和install解决
    在这里插入图片描述

五.maven配置中出现的问题3

  1. 若出现少包等情况还可以通过以下方法解决
    在这里插入图片描述

maven导入jar包时冲突解决

maven工程要导入jar包的坐标,就必须要考虑解决jar包冲突,例如如下导入,当导入spring-context和spring-beans两个jar包时,两个jar包都依赖与spring-core,那么spring-core的版本到底是哪个?

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xmx</groupId>
  <artifactId>maven_day02_1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <!--maven工程要导入jar包的坐标,就必须要考虑解决jar包冲突 -->

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>
  </dependencies>
 
</project>

在这里插入图片描述

以上导入方法获得spring-core版本如下:
在这里插入图片描述

解决jar包冲突的方式一:

第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,可以优先进入项目中。
例如:将spring-context和spring-beans两个jar包导入顺序调换

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xmx</groupId>
  <artifactId>maven_day02_1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <!--解决jar包冲突的方式一:
    第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。
    先声明的jar包坐标下的依赖包,可以优先进入项目中。 -->

  <dependencies>
  	<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
  </dependencies>
 
</project>

则导入的spring-core版本更换
在这里插入图片描述

解决jar包冲突的方式二:

maven导入jar包中的一些概念:
直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。
传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖包传递到项目中去。

路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。
例如:直接指定spring-core的版本

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xmx</groupId>
  <artifactId>maven_day02_1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <!--maven导入jar包中的一些概念:
    直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。
    传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖包传递到项目中去。

    解决jar包冲突的方式二:
    路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。
    -->

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.2.8.RELEASE</version>
    </dependency>
  </dependencies>
</project>

则导入的spring-core版本更换
在这里插入图片描述

解决jar包冲突的方式三(推荐使用):

直接排除法:当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号。因为此时依赖包使用的版本默认和本jar包一样。
例如:使用exclusions标签将当前版本排除

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xmx</groupId>
  <artifactId>maven_day02_1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <!--解决jar包冲突的方式三【推荐使用】:
    直接排除法。
    当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号。
    因为此时依赖包使用的版本默认和本jar包一样。
    -->
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.4.RELEASE</version>
      <exclusions>
        <exclusion>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
  </dependencies>
</project>

则导入的spring-core版本更换
在这里插入图片描述

解决jar包冲突实例:

如下图所示,导入jar包坐标后出现红色下划线,其后出现 omitted for conflict with xxx.RELEASE,说明冲突使用方法三将其解决。
在这里插入图片描述

解决jar包冲突实用经验1:
  1. 安装插件maven helper

在这里插入图片描述

  1. 点击pom.xml文件左下角有Dependency Analyzer

在这里插入图片描述

  1. 进入Dependency Analyzer界面,点击Conflicts,下面将会把所有冲突的包展示出来,将红色的右键Exclude,再点击Reimport。

在这里插入图片描述

  1. 冲突解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晒太阳的黑宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值