Gradle - получение последней версии версии зависимости
Что было бы самым простым способом сказать Gradle
следующее:
Восстановите зависимость "junit" и возьмите последнюю версию "release".
Управление репозиториями 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]"
}
Возможно, я что-то неправильно понимаю - почему бы получить последнюю версию зависимостей, такую сложную задачу, что?
Ответы
Ответ 1
Gradle в настоящее время не поддерживает Maven RELEASE
(который редко используется и устарел), но он поддерживает Ivy latest.release
. Однако общая рекомендация заключается в том, чтобы строить против точных версий. В противном случае сборка может стать лотереей.
Ответ 2
Иногда бывает полезно получить последнюю версию - если, например, вы часто выпускаете свои собственные зависимости.
Вы можете получить последнюю версию, например
compile "junit:junit:+"
или лучше указать хотя бы основную версию, например
compile "junit:junit:4.+"
Ответ 3
Откройте 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
И он покажет вам, какие зависимости устарели!
Ответ 4
В последнем Gradle В руководстве пользователя упоминаются и объясняются версии с дополнительными знаками:
Из 7.2. Объявление ваших зависимостей:
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
... В сборке script также указано, что для компиляции тестов проекта требуется любой junit >= 4.0.
Из 23.7. Как работает разрешение зависимостей:
Если зависимость объявлена как динамическая версия (например, 1. +), Gradle разрешит это для последней доступной статической версии (например, 1.2) в репозитории. Для репозиториев Maven это выполняется с использованием файла maven-metadata.xml, в то время как для репозиториев Ivy это делается с помощью списка каталогов.
Ответ 5
Если вы используете +
для версии и хотите знать, какая версия на самом деле используется, выберите Project
на боковой панели, а затем под External Libraries
вы увидите фактический номер версии.