Maven错误收集
Eclipse 创建项目时报错
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 from any of the configured repositories. Could not resolve artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:1.1 Could not transfer artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:1.1 from/to alimaven (https://maven.aliyun.com/repository/central): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Could not transfer artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:1.1 from/to alimaven (https://maven.aliyun.com/repository/central): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target使用
使用了阿里的中央仓库,更换为public仓库解决了该问题,公共配置未修改,修改的是个人用户配置
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
<profile> <id>jdk-1.8</id> <activation> <jdk>1.8</jdk> </activation> <repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </profile>
Eclipse中的配置
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果上面的方式没有解决问题,可以尝试以下的方式
1. 如果maven软件本身没有问题,那么问题就出在我们的使用方式上
2. 回顾maven使用的几个要点
下载maven软件、安装并配置环境变量
修改maven的settings文件,镜像源、本地仓库等
配置Eclipse中的maven
3. 删除已有的maven配置
删除安装软件、本地仓库;如果是当你更换过本地仓库位置时,找到他们并全部删除
然后重新安装配置
4. 重新安装
C:\Users\thinkpad>mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: E:\wks_mango\app\apache-maven-3.6.2\bin\..
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: E:\disk\app\java\jdk\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
C:\Users\thinkpad>java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
查看maven版本信息,发现maven找的JDK并不是当前JAVA_HOME配置的JDK,之前配置了多次JDK环境变更,不知为何maven找了之前的某个版本的JDK
找到M2_HOME/bin目录下的mvn.cmd文件,指定JDK的路径
set ERROR_CODE=0
set JAVA_HOME=E:\wks_mango\app\jdk8u221
这样maven就可以找到指定版本的JDK
C:\Users\thinkpad>mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: E:\wks_mango\app\apache-maven-3.6.2\bin\..
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: E:\wks_mango\app\jdk8u221\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
配置个人maven
复制一份全局的settings配置文件到任一位置,修改以下内容
<localRepository>E:\wks_mango\repo\dev01</localRepository>
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
<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>
这三个分别是本地仓库的位置、镜像来源、默认JDK编译的版本;
最重要是本地仓库的位置这个配置,一个项目应该有一个自己独立的本地仓库,对应它自己的镜像来源,不可交叉,不可重复。
国内镜像用于加速Jar包的下载速度,慢一些至少不报错;
JDK编译不指定1.8会有警告,但也不报错;
本地仓库如果有jar冲突,抱歉,你项目都创建不成功,就算创建成功,也没法运行;
为一个项目指定个性的用户配置,一个独立的本地仓库,遇到冲突就删除这个本地仓库中的内容,让maven重新拉取jar。
重启一下Eclipse
这一点很重要,我在一次配置中,重启一下Eclipse再创建项目时,就不再报错了
配置本地maven catalog
如果重启eclipse后,还报错,就尝试配置一个本地的catalog
catalog下载
https://download.csdn.net/download/tpfbx/11831033
配置好之后,重新换一个本地仓库目录,或者把现有的本地仓库删除,然后重启一下Eclipse
新创建项目时,从该catalog选择项目,项目比较多,可输出以下条件过滤
maven-archetype-quickstart
maven-archetype-webapp