以下内容純屬個人扯淡,僅供參考
說明:使用的是IDEA2019.3版本内嵌的插件,version=3.6.1,是以不需要專門下載下傳一個maven軟體到本地中。使用内嵌版有些不好的地方:隻能是IDEA本身使用,eclipse每個版本也有自帶的内嵌版maven,是以不同的開發工具,或同一開發工具但不同版本之間的内嵌maven版本就不一緻,在這種情況下,最好為不同的開發工具設定不同的.setting.xml配置檔案和本地倉庫
目錄
一、配置本地倉庫、遠端倉庫
二、jar包無法下載下傳到本地倉庫
三、将本地jar包打入到本地maven倉庫中
一、配置本地倉庫、遠端倉庫
配置檔案
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:/maven/idea_repository/Repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<!--
<mirror>
<id>springio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2</url>
</mirror>
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<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>
</profiles>
</settings>
該配置檔案名為.settings.xml,其中<localRepository>中的路徑就是本地倉庫位置,<mirror>就是遠端倉庫位置
另外建議将該配置檔案放置在D:/maven/idea_repository目錄下,與本地倉庫Repository目錄同級,這樣表示該倉庫與其配置檔案在一個目錄下,友善查找;并且,可以再建一個D:/maven/eclipse_repository目錄,存放另一個配置檔案.settings.xml和倉庫Repository,這樣就在本地分别配置了兩個本地倉庫分别供IDEA、eclipse工具使用
二、jar包無法下載下傳到本地倉庫
1.問題描述
項目中需要使用
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version
</dependency>
但是maven install一直失敗

該jar包無法在遠端倉庫中找到
2.一般解決辦法
(1) 浏覽遠端倉庫:mvnrepository、aliyun等遠端倉庫中心
(2) 搜尋你需要的jar包及版本
缺點:恰好你需要的jar包版本在遠端倉庫中有。多重試幾次install即可
3.另一種方法
(1)出現該問題後,你可以打開本地倉庫該jar包所在目錄,那麼目錄的内容會是這樣的:此時,jar封包件沒有下載下傳到本地
但是,正常的應該是這樣:
(2)手動下載下傳jar檔案
可以通過各種方式:百度、倉庫服務、百度雲等等,隻要能拿到jar檔案
(3)更改jar檔案名
手動下載下傳到的jar檔案名可能是各種各樣的,我們應該更改為按照生成的那些檔案的"樣子"
(4)清空ojdbc14/10.2.0.3.0這個檔案夾的其他檔案
注意:不清空直接maven install試試
(5)重新maven install即可
三、将本地jar包打入到本地maven倉庫中
說明:這和上一個問題本質上是相同的,都是将我們手中已有的jar包,給與它一個本地倉庫maven坐标。坐标是僅僅用于辨別一個jar封包件的唯一性而已,maven能夠根據坐标去找到唯一的一個jar封包件,它并不關系這個jar包本身是什麼内容,你什麼可以将一個任意檔案命名為x.jar檔案,然後打入到本地maven倉庫中,内容隻是決定着編譯、運作時是否可用。
maven項目根據坐标,先去本地倉庫中找,如果沒找到時若設定了私服,則去私服倉庫中找;若未設定私服,則去配置的遠端倉庫中找(預設遠端倉庫是repo1什麼的)
準備好jar封包件,在其所在目錄中執行以下指令
mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=com.github.noraui -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar
注意:建議為maven配置環境變量MAVEN_HOME,這樣就可以在任意目錄執行mvn指令被識别了,否則就隻能在該指令所在目錄下運作;-Dfile值為相對路徑表示目前路徑下的該檔案名,它的目的是為了找到這個jar檔案,不要使用wi10的PowerShell執行該指令,而是使用cmd(将jar包放在桌面上,打開cmd後預設是進入到使用者目錄,是以cd Desktop就進入到桌面了)
對應maven坐标
<dependency>
<groupId>com.github.noraui</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
四、多子產品工程打包失敗
現象:A依賴B,B依賴C,但C單獨maven clean install成功後,對B執行該操作則失敗
報錯意思是說B的pom.xml的C這個依賴無法被找到,但實際上C是已打包成功的
解決辦法:打包多子產品項目時,應首先對父工程Maven install