gradle是否可以使用最新版本作为默认依赖项版本?

gradle是否可以使用最新版本作为默认依赖项版本?,gradle,Gradle,我想在build.gradle的某个地方写一次版本:“最新的.release”。 然后可以将依赖项简化为: 编译“org.jsoup:jsoup” 就像spring boot一样: 编译“org.springframework.boot:springbootstarterweb” 有可能吗?一般来说,最佳实践是始终根据准确的版本进行构建,以避免出现不可预测的情况 但是,如果您真的想根据最新版本进行构建,可以这样做: dependencies { myConfiguration 'group:

我想在build.gradle的某个地方写一次版本:“最新的.release”。 然后可以将依赖项简化为: 编译“org.jsoup:jsoup”

就像spring boot一样: 编译“org.springframework.boot:springbootstarterweb”


有可能吗?

一般来说,最佳实践是始终根据准确的版本进行构建,以避免出现不可预测的情况

但是,如果您真的想根据最新版本进行构建,可以这样做:

dependencies {
  myConfiguration 'group:module:latest.release'
}
对所有人工制品强制执行最新版本的唯一(正确)方法是编写解决策略。
看看:

我通常不会使用绝对最新版本,但您可以在gradle中简单地使用它

语法使用“+”匹配任何版本,例如,“4.+”将检查最新的4.0版本。如果您只使用“+”本身,它会找到最新的发布版本,但是如果依赖它,您可能会遇到问题,因为在主要版本上通常会有突破性的更改,并且您的构建只需下载它们而不必担心

总之,一个小测试是:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "junit:junit:+"
    }
}

import org.junit.Assert
task someTask << {
    Assert.assertEquals(true, !false)
}

谢谢。最后,我将所有{resolutionStrategy{eachDependency{d->如果(!d.target.version)d.usevision'latest.release'}}}}添加到configurations+将尝试获取最新(最高)的可用版本,但这并不一定意味着这是一个释放。完全同意。当然,这也取决于您对“发布”的定义,例如“最新测试版”。但是我同意,如果OP是在产品发布之后,而不是alpha或beta版本,那么按照您的建议,使用特定的版本(这也是我在内部坚持的-不希望构建因外部更改而失败)
gradle someTask