Подтвердить что ты не робот

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

Возможно, я что-то неправильно понимаю - почему бы получить последнюю версию зависимостей, такую ​​сложную задачу, что?

4b9b3361

Ответ 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 вы увидите фактический номер версии.