作为小白,搭建maven工程的时候,最常碰见的一个问题,就是配置的maven库中缺少某个包,看着红色的叉子,心情就很糟了。
一位Java大神告诉我这个问题一般是两种解决:
1. 包确实不存在,或者包的目录下有乱七八糟的文件
包不存在说明下载有问题,可能是私服没有,或者网络有问题,没下载完整等等。
乱七八糟的文件是maven自己生成的,用来标记什么时候更新过包,下载失败的,这个文件存在的话,再次构建也不会去下载包了,需要手工删掉这个文件。乱七八糟的文件可能是一个或多个,目录下面,除了pom.xml和jar包,其他的文件都可以删除,或者pom.xml和jar包也可以删除,让maven再去下载一次也没问题。
2. 包存在,也没有任何问题
这种可能就是eclipse显示的问题,update工程,重新编译一下,应该就可以了。
这两天做测试,手动下载一些maven中没有的包,还可以通过jar进行安装。
语法如下,
mvn install:install-file
-Dfile=jar包的位置(参数一)
-DgroupId=groupId(参数二)
-DartifactId=artifactId(参数三)
-Dversion=version(参数四)
-Dpackaging=jar
例如,增加commons-io-2.3.jar,参数一是下载本地的jar路径,pom.xml配置如下所示,
<dependency>
<groupId>org.apache.commons</groupId> --参数二
<artifactId>commons-io</artifactId> --参数三
<version>2.3</version> --参数四
</dependency>
一开始执行,提示这个错误,
C:\bisal\maven-3.0.5\bin>mvn install:install-file -DgroupId=org.apache.commons -Dversion=2.3 -Dpackaging=jar -Dfile=c:\bisal\Dev\commons-io-2.3.jar
[ERROR] Error executing Maven.
[ERROR] 1 problem was encountered while building the effective settings
[FATAL] Non-parseable settings C:\bisal\maven\maven-3.0.5\bin\..\conf\settings.xml: only whitespace content allowed before start tag and not \u1 (position: START_DOCUMENT seen \u1... @1:1) @ C:\bisal\maven\maven-3.0.5\bin\..\conf\settings.xml, line 1, column 1
因为他使用了maven工具中conf的settings.xml配置文件,我实际使用的settings.xml,是在其他路径下,但是尝试加-s参数,变更配置文件的路径,没起作用。
简单的操作,就是用实际的settings.xml直接覆盖conf的settings.xml。再次执行,提示安装完成,
P.S. 如果您知道怎么彻底解决这个问题,请指教下。
C:\bisal\maven-3.0.5\bin>mvn install:install-file -DgroupId=org.apache.commons -Dversion=2.3 -Dpackaging=jar -Dfile=c:\bisal\commons-io-2.3.jar -DartifactId=commons-io
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-pom ---
[INFO] Installing c:\bisal\commons-io-2.3.jar to C:\bisal\maven\repository\org\apache\commons\commons-io\2.3\commons-io-2.3.jar
[INFO] Installing C:\Users\86134\AppData\Local\Temp\mvninstall1394150247400548332.pom to C:\bisal\maven\repository\org\apache\commons\commons-io\2.3\commons-io-2.3.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.541s
[INFO] Finished at: Mon Jan 25 16:49:25 CST 2021
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
此时本地maven库中就存在这个包了。