亲宝软件园·资讯

展开

关于maven使用过程中无法导入依赖的一些总结

Toor Ma 人气:0

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>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。 

加载全部内容

相关教程
猜你喜欢
用户评论