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

时间:2012-04-29 07:22:22

标签: java maven dependencies ivy gradle

告诉Gradle以下内容的最简单方法是什么:

  

检索'junit'依赖关系并采用其最新的'release'版本。

管理Maven和Ivy存储库对我来说有点新鲜。我尝试了以下步骤,导致Could not resolve dependency ...错误:

  • 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存储库:

    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]"
    }
    

也许我误解了一些事情。为什么获得依赖的最新版本是一项艰巨的任务?

5 个答案:

答案 0 :(得分:225)

有时获取最新版本非常有用 - 例如,如果您经常发布自己的依赖项。

您可以获得最新版本

compile "junit:junit:+"

或更好地指定至少主要版本,如

compile "junit:junit:4.+"

答案 1 :(得分:42)

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

答案 2 :(得分:22)

查看Gradle-Versions-Plugin。它完全符合您的要求:https://github.com/ben-manes/gradle-versions-plugin

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

apply plugin: 'com.github.ben-manes.versions'

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

然后您可以使用该插件,在项目目录的终端中运行此命令:

./gradlew dependencyUpdates -Drevision=release

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

答案 3 :(得分:7)

最新Gradle用户指南提及并解释了加号版本:

来自7.2. Declaring your dependencies

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

...构建脚本还声明编译项目测试需要任何junit> = 4.0。

来自23.7. How dependency resolution works

  

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

答案 4 :(得分:3)

在Android Studio中:

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