我們開發涉密項目的時,需要在內網的環境下調試程序,這時候一個比較頭疼的問題是無法下載相關的maven依賴,導致項目無法編譯啓動。怎麼解決這個問題呢?
第一步,將相關的maven依賴在外網的環境中下載好,然後將整個repository打包後拷貝到內網的機器上並解壓:
第二步,將maven的配置文件settings.xml拷貝一份出來,在localRepository中配置本地倉庫的地址。例如我剛纔拷貝出來的倉庫放在D:/repository
下,然後配置下本地的鏡像,本地倉庫的地址一定要配置正確。
<?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:/repository</localRepository>
<mirrors>
<mirror>
<id>central</id>
<name>central</name>
<!-- 將鏡像地址設置爲本地maven地址 -->
<url>file://D:/repository</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
第三步,打開IDEA的maven設置:file->settings搜索maven。注意要將maven設置爲Work offline(離線模式),然後將User settings file配置成上一步拷貝的settings.xml的地址,點擊OK。
這個時候就已經完成maven的離線配置了。如果還不行可以刷新一下maven的依賴,點擊reimport,然後依賴就可以導入進來了。如果還是紅色的線,可以嘗試點擊啓動項目,看是不是報錯,有的時候可能是沒有及時刷新導致的。
另外分享一個maven離線打包的命令:mvn -o
,此命令是在maven打包的時候不去下載倉庫的依賴,非常有用。
mvn clean package -o -DskipTest
// 或者使用這種方式跳過測試
mvn clean package -o -Dmaven.test.skip=true
多總結,常積累,加油!