首页 文章

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

提问于
浏览
70

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

检索'junit'依赖关系并采用其最新的'发布'版本 .

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

也许我误解了一些事情 . 为什么获得依赖的 latest 版本是如此艰巨的任务?

5 回答

  • 211

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

  • 21

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

    您可以获得最新版本

    compile "junit:junit:+"
    

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

    compile "junit:junit:4.+"
    
  • 6

    查看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

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

    来自7.2. Declaring your dependencies

    依赖{
    编译组:'org.hibernate',名称:'hibernate-core',版本:'3.6.7.Final'
    testCompile组:'junit',名称:'junit',版本:'4 . “
    }
    ...构建脚本还声明编译项目测试需要任何junit> = 4.0 .

    来自23.7. How dependency resolution works

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

  • 35

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

相关问题