2011-12-05 84 views
20

我想將Maven本地存儲庫另外用於Maven遠程存儲庫。爲此,我找到了JIRA-Issue http://issues.gradle.org/browse/GRADLE-1173,但以這種方式修改了我的gradle構建文件,但仍然未找到僅在本地maven存儲庫中可用的某些快照依賴項。我收到一個錯誤,指出找不到快照依賴項。如何在gradle構建文件中配置maven本地和遠程存儲庫?

是否有可能擁有一個本地和一個遠程Maven倉庫?

這裏是我的gradle這個build文件的相關部分:

apply plugin: 'maven' 

repositories { 

    mavenLocal() 

    maven { 
     credentials { 
      username "myusername" 
      password "mypassword" 
     } 
     url "http://myremoterepository" 
    } 

} 
+1

我沒有看到一個原因,它不該」工作。你可以嘗試暫時排除遠程Maven存儲庫和相關的依賴關係,看看會發生什麼?有可能'mavenLocal()'不會正確猜測版本庫的位置。嘗試用'mavenRepo urls:「file:///home/user/.m2/repository」'而不是'mavenLocal()'來明確地指向正確的位置,看看會發生什麼。 – rodion

+0

請注意,'X.Y-SNAPSHOT'總是_older_而不是'X.Y',所以當您添加'-SNAPSHOT'時,還會碰撞'Y'以準備最終發佈。如果您只是將'-SNAPSHOT'添加到已發佈的'X.Y',那麼它會找到'X.Y'而不是'X.Y-SNAPSHOT'。 –

回答

21

我還需要做一個類似的設置與我的項目,我可以驗證您的build.gradle安裝程序提供您的Maven安裝正確。

搖籃mavenLocal()依靠localRepository定義從行家settings.xml文件:

<localRepository>USER_HOME\.m2\repository</localRepository> 

settings.xml中應該也在你的M2_HOME/conf或您USER_HOME/.m2 directory。您應該檢查:

  1. Maven是安裝正確
  2. M2_HOME環境變量存在
  3. settings.xml具有定義的正確localRepository ..
+0

有些人會覆蓋本地Maven存儲庫位置(例如在IDE中)。所以我寧願把顯式位置的maven repo:'maven {urven(local_repository_path) }'where'local_repository_path'取自'gradle.properties' –

+0

有誰知道我必須在Windows上配置什麼樣的環境變量?我的maven安裝位於路徑中,我有一個einvironment變量M2_HOME指向settings.xml所在的文件夾,maven本身解析存儲庫就好了,但gradle不能。它在我做publishToMavenLocal時構建,但沒有任何內容顯示在存儲庫中。 – UncleBob

0

的Maven只能使用一個本地(「本地」 =在其上運行Maven的計算機的硬盤)存儲庫。

如果您需要更多,你的選項有:

  • 運行一個遠程服務器(如企業級代理),而且部署的一切。將該服務器作爲鏡像放入您的settings.xml
  • 運行mvn install的文物在當地的回購手動文物複製(顯然,只有當你有來源)
  • 運行本地服務器
  • 複製到本地回購
+0

單個本地對我來說就足夠了 - 單個和一個遠程maven倉庫,而不是多個本地maven倉庫 – Cengiz

+0

在這種情況下,編輯您的問題並添加以下信息:您獲得快照構件的錯誤? –

相關問題