Gradle: найти разрешенную версию зависимостей, импортированных с помощью +
Я хочу напечатать последнюю версию dependency
в градиенте.
Я добавил свою зависимость следующим образом:
compile 'test:test:+'
теперь я хочу напечатать версию моей зависимости, потому что хочу узнать, какую версию я использую.
Я использую его таким образом:
gradle dependencyInsight --configuration compile --dependency test:test
Но мой вывод таков:
+--- test:test:+ -> project : (*)
Есть ли в любом случае я могу получить реальную версию моей зависимости, а не +
?
Ответы
Ответ 1
Внутри модуля app
build.gradle
я импортировал библиотеку Square Moshi следующим образом:
dependencies {
compile 'com.squareup.moshi:moshi:+'
}
Затем я выполнил следующую команду в терминале:
./gradlew app:dependencyInsight --configuration compile --dependency com.squareup.moshi:moshi
Вот результат, который я получил:
Ответ 2
Вся простая, открытая иерархия зрения Проект и см. Внешние библиотеки
Ответ 3
Если вы хотите проверить обзор для всех своих зависимостей, вы можете проверить с помощью этой команды -
Решение 1-
./gradlew app:dependencies
Или же
Решение 2-
Если вы хотите проверить какую-либо конкретную зависимость. Вы можете использовать встроенную функцию gradles 'dependencyInsight: -
gradle dependencyInsight --configuration compile --dependency compile 'test:test:+'
или же
Решение 3-
Вы можете проверить папку проекта .idea
внутри вашего проекта ->.idea/libraries
там также вы можете увидеть окончательную версию используемых зависимостей.
Ответ 4
После того, как вы добавили свою зависимость в качестве теста "compile": test: + '", создайте проект.
Затем в иерархии структуры папки " Проект " найдите эту зависимость в " Внешних библиотеках " в нижней части структуры папок, она будет вместе с ее версией. Снова используйте эту версию со своей зависимостью и повторите синхронизацию/сборку проекта.
Ответ 5
Вы можете сделать следующее:
- Используйте конфигурацию, содержащую файл jar
- Фильтр для имени файла jar
- Распечатайте результаты
Это напечатает полный путь, а также версию. При необходимости вы можете извлечь только имя баннера.
task printPmdVersion << {
FileTree pmdJar = zipTree(configurations.pmd.filter {
dep -> dep.name.contains("pmd-core")
}.singleFile)
println pmdJar
}
Пример вывода:
ZIP '/home/user/java/gradle_user_home/caches/modules-2/files-2.1/net.sourceforge.pmd/pmd-core/5.4.1/28715c2f768b58759bb5b373365997c30ac35899/pmd-core-5.4.1.jar'
Ответ 6
Не рекомендуется использовать знак "+", чтобы всегда использовать последнюю версию библиотеки, потому что вы не сможете иметь повторяющуюся сборку, если она вам нужна.
Я имею в виду, если вам нужно проверить свою предыдущую версию своего APK в вашей системе управления исходным кодом (например, Git), которая, как вам известно, работает нормально, если вы сегодня компилируете (возможно, новая версия библиотеки могла быть выпущена)... может быть, ваш старый друг APK, который отлично работал... теперь он не работает так, как ваш последний.
Тем не менее, я предлагаю вам использовать такой плагин:
https://github.com/ben-manes/gradle-versions-plugin
Вы будете устанавливать в своем build.gradle на уровне проекта следующим образом:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply plugin: 'com.github.ben-manes.versions'
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
И вы найдете новую задачу градиента с именем dependencyUpdate
которая, если вы пообедаете, сообщит вам все версии вашей библиотеки по сравнению с последними:
------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------
The following dependencies are using the latest milestone version:
- com.github.ben-manes:gradle-versions-plugin:0.17.0
- junit:junit:4.12
The following dependencies have later milestone versions:
- com.android.support:appcompat-v7 [26.1.0 -> 27.0.2]
- com.android.support.constraint:constraint-layout [1.0.2 -> 1.1.0-beta5]
- com.android.support.test.espresso:espresso-core [3.0.1 -> 3.0.2-alpha1]
- com.android.tools.build:gradle [3.0.1 -> 3.2.0-alpha03]
- org.jacoco:org.jacoco.agent [0.7.4.201502262128 -> 0.8.0]
- org.jacoco:org.jacoco.ant [0.7.4.201502262128 -> 0.8.0]
- com.android.support.test:runner [1.0.1 -> 1.0.2-alpha1]