告诉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]"
}
也许我误解了一些事情。为什么获得依赖的最新版本是一项艰巨的任务?
答案 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
您将看到正在使用的实际版本号。