我想在build.gradle的某處寫一個版本:'latest.release'一次。 然後依賴性可以簡化這樣的: 編譯「org.jsoup:jsoup」Gradle是否可以使用latest.release作爲默認依賴版本?
就像春天的引導作用: 編譯「org.springframework.boot:彈簧引導啓動的web」
是有可能嗎?
我想在build.gradle的某處寫一個版本:'latest.release'一次。 然後依賴性可以簡化這樣的: 編譯「org.jsoup:jsoup」Gradle是否可以使用latest.release作爲默認依賴版本?
就像春天的引導作用: 編譯「org.springframework.boot:彈簧引導啓動的web」
是有可能嗎?
通常,最佳實踐是始終針對確切版本進行構建,以避免出現不可預測的情況。
但是,如果你真的想建立針對最新的版本中,你可以做這樣的:
dependencies {
myConfiguration 'group:module:latest.release'
}
唯一的(正確)的方式來執行latest.release所有文物是寫的決議戰略。 看看:ResolutionStrategy
我通常不會使用絕對最新版本,但您可以簡單地在gradle中使用它。
語法使用「+」來匹配任何版本,例如, 「4. +」將檢查最新的4.anything版本。如果你只是自己使用「+」,它會發現最新的發行版本,但是如果你依賴這個版本,你可能會遇到麻煩,因爲通常會對主要版本進行重大更改,並且你的版本會直接下載它們而不用擔心。
不管怎樣,小測試:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "junit:junit:+"
}
}
import org.junit.Assert
task someTask << {
Assert.assertEquals(true, !false)
}
與
gradle someTask
+會嘗試獲得最新(最高)的可用版本,但這並不一定意味着它是一個發佈。 – Sean 2014-10-29 23:43:05
完全同意。當然這也取決於你對'釋放'的定義,例如「最新的beta版本」。然而我同意,如果OP是在產品發佈之後而不是alpha或beta,那麼就像你所建議的那樣,使用特定版本(這也是我在內部堅持的 - 不想因爲外部變化而造成失敗) – 2014-10-30 08:48:10
非常感謝執行這個。最後,我想補充的所有{ resolutionStrategy { eachDependency {d - > 如果 d.useVersion 'latest.release' }} (d.target.version!)}來配置 – nxx 2014-10-29 03:47:47
歡迎您很高興我能幫助! 。 – Sean 2014-10-29 23:39:54