一.maven的下载
-
进入maven下载官网下载添加链接描述
-
将下载文件保存到指定位置进行解压(这里解压在D:\code\java\apache-maven-3.6.3)
-
配置环境变量:MAVEN_HOME = D:\code\java\apache-maven-3.6.3
-
再配置path:%MAVEN_HOME%\bin
-
进入系统命令行输入 mvn -version,如图所示则配置成功
二.本地maven仓库配置
- 将下载好的maven_repository.zip文件在指定目录解压(这里解压在D:\code\java\maven_repository)
- 配置settings.xml文件,打开apache-maven-3.6.3\conf\settings.xml文件
- 在setting.xml文件中添加
<localRepository>D:\code\java\maven_repository</localRepository>
- 在setting.xml文件中添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 在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
-
打开IDEA,点击右下角Configure配置setting
-
设置maven路径
-
设置到此完成
四.maven配置中出现的问题1
-
新建web项目时出现如下错误
-
在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
-
创建项目出现如下报红
-
可点击上面clean和install解决
五.maven配置中出现的问题3
- 若出现少包等情况还可以通过以下方法解决
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:
- 安装插件maven helper
- 点击pom.xml文件左下角有Dependency Analyzer
- 进入Dependency Analyzer界面,点击Conflicts,下面将会把所有冲突的包展示出来,将红色的右键Exclude,再点击Reimport。
- 冲突解决。