Gradle – 获取依赖项的最新版本

告诉Gradle最简单的方法是什么?

检索“junit”依赖关系,并将其作为最新的“发布”版本。

pipe理Maven和Ivy仓库对我来说是新鲜的 – 我尝试了以下步骤,结果导致"Could not resolve dependency ..." error

  • compile "junit:junit:latest.release"与储藏库设置为只mavenCentral() (但是,它的作品,如果我说“junit:junit:4.10”)。

  • 用库设置以下方式compile "junit:junit:latest.release"

 ivy { // I also tried 'http://maven.org' and other possible variants. url "http://repo1.maven.org" layout "maven" } 
  • 试图使用Spring Source Ivy repository
 ivy { artifactPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" ivyPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" } 

也许我误解了一些东西 – 为什么要获得最新版本的依赖是一件如此艰巨的任务呢?

Gradle目前不支持Maven的RELEASE (很less使用和弃用),但它支持Ivy的latest.release 。 但是,一般build议是针对确切版本进行构build。 否则,build设可以成为一个彩票。

有时候获得最新的版本可能是非常有用的 – 例如,如果你经常释放你自己的依赖关系。

你可以得到最新的版本

 compile "junit:junit:+" 

或者至less指定至less主要版本

 compile "junit:junit:4.+" 

查看Gradle-Versions-Plugin。 它正是你想要的: https : //github.com/ben-manes/gradle-versions-plugin

有关安装,请参阅github页面。 基本上你需要将这两行添加到你的build.gradle – project文件中:

 apply plugin: 'com.github.ben-manes.versions' buildscript { [...] dependencies { classpath 'com.github.ben-manes:gradle-versions-plugin:0.8' [...] } } [...] 

然后你可以使用这个插件,通过在你的项目目录中运行这个命令dir:

 ./gradlew dependencyUpdates -Drevision=release 

它会告诉你哪些依赖已经过时了!

最新的Gradle用户指南提到并解释加号login版本:

从7.2开始。 声明你的依赖关系 :

 dependencies { compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final' testCompile group: 'junit', name: 'junit', version: '4.+' } 

构build脚本还指出,任何junit> = 4.0都需要编译项目的testing。

从23.7起。 依赖关系parsing如何工作 :

如果依赖被声明为dynamic版本(比如1. +),Gradle会将其parsing为版本库中最新的可用静态版本(如1.2)。 对于Maven仓库,这是使用maven-metadata.xml文件完成的,而对于Ivy仓库来说,这是通过目录列表完成的。

如果您使用+版本,并且想知道哪个版本实际上正在使用 ,请select边栏中的Project ,然后在External Libraries您将看到正在使用的实际版本号。