2013-10-11 122 views
0

我在我的本地.m2存儲庫中有一些.pom和.lastUpdated文件。我可以刪除它們嗎?我可以刪除maven的.m2存儲庫中的.pom和.lastUpdated文件嗎?

我需要把.m2文件夾放在服務器上,在那裏下載不可能用於罐子。

我試圖在MAVEN_HOME/conf的settings.xml中設置true,但無濟於事。 Maven仍然嘗試下載幾個罐子(每次都失敗)。

這種未經授權的下載的原因我認爲是在存儲庫中存在.pom和.lastUpdated文件。我對麼?

回答

0

您是否嘗試過設置offline to true in your settings xml

如果這是現在的工作,是因爲你的settings.xml在錯誤的地方。 Maven確實尊重這個屬性。

<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"> 

    <!-- also point here to the repository that you'll copy from another computer --> 
    <offline>true</offline> 
</settings> 
# mvn clean install 
[INFO] 
NOTE: Maven is executing in offline mode. Any artifacts not already in your local 
+0

正在使用Hudson從SVN構建我的代碼。而哈德遜的MAVEN_HOME被設置在我想要的地方。我還能如何確保這是正確的地方? – swateek

+0

設置xml應該在$ HOME/.m2中,請閱讀我在答案中鏈接的maven文檔。 – Augusto

+0

我已經讀過...並且已經交叉檢查了我的settings.xml位置。這太瘋狂了。 – swateek

0

其他的解決辦法是從pom.xml中刪除你的資料庫並直接從服務器上安裝。 爲此,您需要安裝指令mvn install:install-file -Dfile=YOURJAR.jar -DgroupId=GROUPID_OF_YOU_JAR -DartifactId=ARTIFACID_OF_YOU_JAR -Dversion=VERSION -Dpackaging=jar的罐子,例如,將其放在您的pom.xml所在的文件夾中。

+0

我不能這樣做,因爲我在本地運行時使用-o命令運行正常。還有其他建議嗎? – swateek

+0

請注意,如果你有100多個依賴關係,並且這些依賴關係也有依賴關係,那麼這將是一個很大的工作量。 – eis

+0

@Swat這不是你不能這麼做的原因(我沒有看到甚至是相關的) – eis

0

基本上不,你不正確,那不是原因。原因是您的repo具有不在該repo中的依賴關係,或者它們具有快照依賴關係,並且您指示更新快照依賴關係。

解決方法是

  • 首先發出命令mvn dependency:go-offline讓你的所有依賴構件的離線版本和插件
  • 然後複製你有你的服務器上的存儲庫文件夾中的Maven倉庫文件夾
  • 然後爲您的所有服務器運行指定離線標誌(-o),或使用maven設置將離線設置爲true(首選),如other answer
+0

Eis ..我使用Hudson來構建我的代碼,並依次使用位於我的服務器上的MAVEN_HOME。這就是爲什麼我無法執行你的'命令'建議。我認爲Hudson UI和Maven的設置有一些東西。xml – swateek

+0

@Swat這是如何阻止你使用命令?用哈德森,你只需在maven配置中指定它?我從來沒有任何問題在哈德森指定他們。 – eis

相關問題