關(guān)于maven使用過程中無(wú)法導(dǎo)入依賴的一些總結(jié)
maven使用過程中無(wú)法導(dǎo)入依賴的一些總結(jié)
作為一名java開發(fā)的新手,在學(xué)習(xí)中難免遇見各種問題,在此總結(jié)一下。
在使用maven過程中總是碰見某些依賴導(dǎo)不進(jìn)去的問題,本人使用的是idea2017、maven3.2版本,通過網(wǎng)上搜索和自己的經(jīng)驗(yàn)歸納為一下幾點(diǎn):
1.settings.xml文件中遠(yuǎn)程倉(cāng)庫(kù)地址的設(shè)置
在maven倉(cāng)庫(kù)的配置文件中,一般設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址為阿里云的私服,國(guó)外的網(wǎng)站也可以就是比較慢,以下為阿里的鏡像
? <mirror> ? ? ?<id>nexus-aliyun</id> ? ? ?<mirrorOf>*</mirrorOf> ? ? ?<name>Nexus aliyun</name> ? ? ?<url>http://maven.aliyun.com/nexus/content/groups/public</url> ? ? </mirror>
2.有些情況可能是倉(cāng)庫(kù)中的沒有下載成功的文件導(dǎo)致的,需要清理倉(cāng)庫(kù)。
以下是我寫的一個(gè)批處理程序用來(lái)清理倉(cāng)庫(kù)
@echo off
title 清理倉(cāng)庫(kù)未下載完成的文件
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是你自己的倉(cāng)庫(kù)地址3.可能是版本太低的bug,建議換一個(gè)更高版本的maven
我的解決辦法是在idea中新建一個(gè)工程,再導(dǎo)入那些報(bào)錯(cuò)的依賴,手動(dòng)導(dǎo)入一下就成功了
4.手動(dòng)用maven命令導(dǎo)入
例如:
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
這個(gè)命令就不細(xì)說(shuō)了,網(wǎng)上有詳細(xì)的說(shuō)明
maven不自動(dòng)導(dǎo)入依賴問題
最近做項(xiàng)目時(shí)直接復(fù)制了別人的pom文件的內(nèi)容,可是復(fù)制過來(lái)的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>
因?yàn)橹皼]有學(xué)習(xí)過maven,都是直接復(fù)制依賴就可以用了,所以對(duì)maven的各種標(biāo)簽不是很熟悉。
開始以為是中央倉(cāng)庫(kù)太卡了下不動(dòng),所以找了各種辦法,網(wǎng)上比較多的說(shuō)法也是說(shuō)使用aliyun的鏡像倉(cāng)庫(kù)。后來(lái)我又是配置mirror,又是重下載新版本maven的。
<mirror> ? <id>aliyunmaven</id> ? <mirrorOf>*</mirrorOf> ? <name>阿里云公共倉(cāng)庫(kù)</name> ? <url>https://maven.aliyun.com/repository/public</url> </mirror>
一頓操作后都不行.
最后還是不行最后發(fā)現(xiàn)根本就不是卡住下不動(dòng),而是連下載都沒有開始,于是開始改標(biāo)簽。最終把dependencyManagement標(biāo)簽刪掉后居然開始下載了。后面查了一下才發(fā)現(xiàn)dependencyManagement用于父工程管理依賴的,用于統(tǒng)一管理jar的版本,在父工程的時(shí)候只是用來(lái)聲明,并不會(huì)下載,只有子工程要用到的時(shí)候才會(huì)去下載。而本地又沒用這些依賴的jar版本,所以才會(huì)一直爆紅。
解決辦法
是將dependencyManagement標(biāo)簽去掉,jar包就會(huì)開始下載了,等下載完成后再加上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>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA+Maven創(chuàng)建Spring項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了IDEA+Maven創(chuàng)建Spring項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
IDEA創(chuàng)建方法時(shí)如何快速添加注釋
這篇文章主要介紹了IDEA創(chuàng)建方法時(shí)如何快速添加注釋問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
10個(gè)Java程序員熟悉的面向?qū)ο笤O(shè)計(jì)原則
這篇文章主要為大家詳細(xì)介紹了Java程序員應(yīng)當(dāng)知道的10個(gè)面向?qū)ο笤O(shè)計(jì)原則,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
詳解SpringBoot Mybatis如何對(duì)接多數(shù)據(jù)源
這篇文章主要為大家介紹了SpringBoot Mybatis如何對(duì)接多數(shù)據(jù)源實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java WebSocket客戶端斷線重連的實(shí)現(xiàn)方法
在工作中是否會(huì)遇到實(shí)用websocket客戶端連接服務(wù)端的時(shí)候,網(wǎng)絡(luò)波動(dòng),服務(wù)端斷連的情況,本文可以直接使用的斷線重連,感興趣的可以了解一下2021-10-10
關(guān)于Swagger注釋API的使用說(shuō)明
這篇文章主要介紹了關(guān)于Swagger注釋API的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Java線程池中的Future實(shí)現(xiàn)詳解
這篇文章主要介紹了Java線程池中的Future實(shí)現(xiàn)詳解, FutureTask是一個(gè)任務(wù),FutureTask繼承了Runnable、Callable, 通過FutureTask可以獲取到任務(wù)執(zhí)行的狀態(tài),任務(wù)執(zhí)行完成完成后,將結(jié)構(gòu)通過Future接口返回,調(diào)用者可以調(diào)用Future#get()方法獲取到數(shù)據(jù),需要的朋友可以參考下2023-10-10

