2017-04-05 78 views
1

我正在準備一個他們可能沒有互聯網連接的研討會。因此,我想提供該項目的每個依賴項/插件,以便參與者可以完全脫機工作。創建一個密封的Maven版本

我有一個基本的Maven項目,有一些依賴和兩個插件。

首先,我創建了一個備用的本地庫:

mvn -Dmaven.repo.local=dependencies dependency:go-offline 

然後,我預計以下命令來運行良好,但它不會!我提到的一些插件丟失不提供行家中央或Maven的分佈中:

mvn -o -Dmaven.repo.local=dependencies package 

這失敗,出現以下錯誤信息:

[錯誤]無法執行目標org.apache。 maven.plugins:maven-resources-plugin:2.6:項目上的資源(默認資源)XXX:目標的執行默認資源org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed:Plugin org。 apache.maven.plugins:maven-resources-plugin:2.6或其某個依賴無法解析:以下工件無法解析:org.apache.maven:maven-profile:jar:2.0.6,org.apache .maven:行家-repository-metadata:jar:2.0.6,org.apache.maven:maven-plugin-registry:jar:2.0.6,classworlds:classworlds:jar:1.1-alpha-2:無法在離線模式下訪問中央(https://repo.maven.apache.org/maven2)和工件org.apache.maven:maven-profile:jar:2.0.6還沒有從它下載過。

任何想法如何在創建備用本地回購時獲取這些缺失位?提前致謝!

回答

1

基於對這個問題的plugin's Jira這個問題仍然沒有得到解決。 到目前爲止最好的解決方案是使用自定義存儲庫將項目在線打包一次。

mvn -Dmaven.repo.local=dependencies dependency:go-offline 

然後

mvn -Dmaven.repo.local=dependencies package 

最後

mvn -Dmaven.repo.local=dependencies -o package 

如果你的車間走得更遠,比部署,你應該檢查下一個目標也運行正常下線!

+0

第二步意味着與會者首先需要在線創建。不過謝謝你們聯繫這個問題! – Rolf

+0

取決於您想要對本地存儲庫執行的操作。我希望你想分享你製作的脫機目標?如果是這樣,您可以在運行最初的軟件包目標後分享它(在課程的研討會之前完成)。不需要額外的依賴性。 – Romain

0

是否可以爲包裝所使用的每個插件聲明pluginManagement?這應該啓用下載時依賴:脫機被調用。

(此外,這將提高穩定性你的構建,因爲你一定會認爲改變Maven的版本將不會改變插件版本)

,你能否證實這一工程? (現在,我有一些想法可以改進這一點,但至少在幾個月前不會提供)