2012-04-14 63 views
2
  1. 我們想要一個腳本來執行「svn update」,如果depedency.gradle文件在更新列表中,我們想運行一個只更新的任務依賴關係,所以開發者機器是最新的。那個任務會是什麼?運行「gradle任務」時我沒有看到它。尋找一個updatejars什麼的。如何防止gradle下載依賴關係

  2. 當我們建立我們的項目時,我們不希望它檢查jar更新!大部分是因爲只需要在上面#1的兩種情況下以及有人更新dependency.gradle文件時完成。第二件事,一旦我知道第一個問題的答案,他們就可以運行「gradle updatejars」。

任何想法?我剛剛進入gradle,並且我們確實希望保持一致的環境,當我們運行我們的更新腳本時,它會在一次原子掃描中得到源代碼和罐子,我們不再爲每個構建檢查存儲庫而煩惱。

如果可能的話,通過更改build.gradle文件知道如何做到這一點是很好的。如果沒有,是否有命令行選項? (build.gradle顯然會給我一個命令行選項,這就是爲什麼我喜歡這種方法,因爲我可以說編譯不依賴於下載jar)。

回答

9

關於第二個問題。據我瞭解,Gradle 不會嘗試進行遠程查找或嘗試下載jar,如果它已經在本地緩存中。對於用靜態版本聲明的罐子,這應該是正確的,例如testCompile 'junit:junit:4.10'

如果您有動態版本,例如, 1.+1.0-SNAPSHOT等,那麼Gradle必須時不時地做一次檢查。你可以fine tune the cache expiry for such dependencies

爲了確保Gradle不會進行遠程查找,您還可以使用--offline選項。 See this doc for details

關於SVN更新,你至少有3個選項:

  1. 嘗試使用SvnKit plugin for Gradle

  2. 使用Ant SVN任務(在這裏是如何做到svn checkout

  3. 從Gradle運行外部命令。使用ExecPlugin或者使用Groovy API自己實現它。