关于maven使用过程中无法导入依赖的一些总结
作者:Toor Ma
maven使用过程中无法导入依赖的一些总结
作为一名java开发的新手,在学习中难免遇见各种问题,在此总结一下。
在使用maven过程中总是碰见某些依赖导不进去的问题,本人使用的是idea2017、maven3.2版本,通过网上搜索和自己的经验归纳为一下几点:
1.settings.xml文件中远程仓库地址的设置
在maven仓库的配置文件中,一般设置远程仓库地址为阿里云的私服,国外的网站也可以就是比较慢,以下为阿里的镜像
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
2.有些情况可能是仓库中的没有下载成功的文件导致的,需要清理仓库。
以下是我写的一个批处理程序用来清理仓库
@echo off title 清理仓库未下载完成的文件 set REPOSITORY_PATH=E:\Program Files\maven3.2\apache-maven-3.2.3\repository echo 正在搜索中..... for /f "usebackq delims==" %%i in ('dir /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s %%i ) pause rem REPOSITORY_PATH是你自己的仓库地址
3.可能是版本太低的bug,建议换一个更高版本的maven
我的解决办法是在idea中新建一个工程,再导入那些报错的依赖,手动导入一下就成功了
4.手动用maven命令导入
例如:
mvn install:install-file -Dfile=D:\spring-framework-4.3.13.RELEASE\libs\spring-test-4.3.13.RELEASE.jar -DgroupId=libs -DartifactId=spring-test -Dversion=4.3.13.RELEASE -Dpackaging=jar
这个命令就不细说了,网上有详细的说明
maven不自动导入依赖问题
最近做项目时直接复制了别人的pom文件的内容,可是复制过来的Maven依赖一直爆红,不下载依赖。
<dependencyManagement> <dependencies> <!--spring boot 2.2.2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
因为之前没有学习过maven,都是直接复制依赖就可以用了,所以对maven的各种标签不是很熟悉。
开始以为是中央仓库太卡了下不动,所以找了各种办法,网上比较多的说法也是说使用aliyun的镜像仓库。后来我又是配置mirror,又是重下载新版本maven的。
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
一顿操作后都不行.
最后还是不行最后发现根本就不是卡住下不动,而是连下载都没有开始,于是开始改标签。最终把dependencyManagement标签删掉后居然开始下载了。后面查了一下才发现dependencyManagement用于父工程管理依赖的,用于统一管理jar的版本,在父工程的时候只是用来声明,并不会下载,只有子工程要用到的时候才会去下载。而本地又没用这些依赖的jar版本,所以才会一直爆红。
解决办法
是将dependencyManagement标签去掉,jar包就会开始下载了,等下载完成后再加上dependencyManagement。
<dependencies> <!--spring boot 2.2.2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。