2012-11-03 69 views
12

假設我在內部服務器上運行了Sonatype Nexus,並且我想用它來代理repo1.maven.org和其他存儲庫。在Maven中,我會簡單地將<mirror>配置添加到settings.xml。我怎樣才能用Gradle做到這一點?如何使用Sonatype Nexus和Gradle代理replangers?

更新:我想這樣做,而不必將我的Nexus實例的URL硬編碼到我擁有的每個項目中。所以我正在尋找Maven <mirror>設置的確切副本。

我能想出現在是這樣做的最好的:

repositories { 
    maven { 
     url "$nexusUrl/content/groups/public" 
    } 
} 

再有這樣的~/.gradle/gradle.properties每個開發人員的計算機上:

nexusUrl = https://nexus.company.com 

然而,這看起來砍死,而且我仍然需要爲每個項目添加5行。有沒有更優雅的方式來做到這一點?

回答

12

初始化腳本可能是最好的方法。看看User Guide中的這一章。

它們提供了一種方法讓您將邏輯注入到所有項目中。

3

the documentationabout init scripts解釋說:

創建一個文件夾,並在.gradle例如爲:~/.gradle/init.d/mirror.gradle結尾的文件。 含內容:

initscript { 
    repositories { 
    maven { 
     url "http://repo.mycompany.com/maven2" 
    } 
    } 
} 
+0

此文檔URL中的片段ID不再存在 - 您指的是哪部分文檔? – Kkkev

+1

當您按Ctrl-F並鍵入「http://repo.mycompany.com/maven2」時發現的那個 –

+0

此解決方案缺少重點!在Maven中,您可以在項目pom中指定一個存儲庫。在您的PC上,您可以使用自己的存儲庫覆蓋它,但這是開發人員的選擇,而不是工件作者的選擇。神器作者如何決定你想使用哪個本地回購? –

相關問題