2016-03-02 39 views
0

我有一個具有很多依賴項的gradle項目,並且運行一個簡單的任務(只是打印出類路徑)需要大約12秒鐘,即使所有依賴項都已經下載並且在緩存中可用。爲什麼gradle每次都在與遠程倉庫交談?

如果我關閉網絡接口,並運行相同的任務,它會在大約一秒鐘內完成。

所以,問題是爲什麼每次都要用到互聯網?是否有一些標誌可以讓它更積極地使用緩存?我試着用Google搜索,並且有很多關於如何強制gradle不使用緩存的討論,但是我找不到相反的東西。

爲了迴應評論的問題,我repositories的配置是這樣的:

repositories { 
    maven { url "${artifactoryUrl}/jcenter" } 
    maven { url "${artifactoryUrl}/libs-release-local" } 
    maven { url "${artifactoryUrl}/libs-snapshot-local" } 
    mavenCentral() 
    maven { url "http://maven.twttr.com" } 
} 

$artifactoryUrl點artifactory的,我們在內部運行的instace)。

+0

你的'repositories {}'配置是什麼樣的? –

+0

@VivinPaliath我將配置添加到問題。 – Dima

回答

2

我知道,如果你有一個依賴關係,你說你總是想要最新版本,gradle將不得不檢查所有的存儲庫,直到它找到一個。

如果您不希望gradle檢查遠程存儲庫並僅使用其緩存,則可以使用--offline標誌(see here)。

+0

是的,我找到了'--offline'標誌,但問題在於我在輸入命令時一直忘記使用它:)你怎麼說「你總是想要最新版本」?我甚至不知道這是可能的。也許,我是在意外做的,這就是我的問題所在? – Dima

+1

要獲得最新版本,您只需在版本號中使用'+'([see here](http://stackoverflow.com/a/10373813/263004))。不幸的是,據我所知,沒有辦法告訴gradle在不使用'--offline'標誌的情況下使用它的緩存。 –

+0

嗯,我肯定沒有版本號中的任何加號......: -/ – Dima