以下內容純屬個人扯淡,僅供參考
說明:使用的是IDEA2019.3版本內嵌的插件,version=3.6.1,因此不需要專門下載一個maven軟件到本地中。使用內嵌版有些不好的地方:只能是IDEA本身使用,eclipse每個版本也有自帶的內嵌版maven,因此不同的開發工具,或同一開發工具但不同版本之間的內嵌maven版本就不一致,在這種情況下,最好爲不同的開發工具設置不同的.setting.xml配置文件和本地倉庫
目錄
一、配置本地倉庫、遠程倉庫
配置文件
<?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這個文件夾的其他文件。
(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