java - tools - Gradle: encuentra la versión resuelta de una dependencia importada con+
gradle version (6)
Quiero imprimir la última versión de una dependency
en gradle.
Agregué mi dependencia de esta manera:
compile ''test:test:+''
Ahora quiero imprimir la versión de mi dependencia, porque quiero saber qué versión estoy usando.
Lo estoy usando de esta manera:
gradle dependencyInsight --configuration compile --dependency test:test
Pero mi salida es esta:
+--- test:test:+ -> project : (*)
¿Hay alguna forma de poder obtener la versión real de mi dependencia y no el +
?
Dentro de build.gradle
del módulo de la build.gradle
, he importado la biblioteca Moshi de Square de la siguiente manera:
dependencies {
compile ''com.squareup.moshi:moshi:+''
}
Luego ejecuté el siguiente comando en la terminal:
./gradlew app:dependencyInsight --configuration compile --dependency com.squareup.moshi:moshi
Aquí está la salida que he recibido:
No es una práctica recomendada usar el signo ''+'' para usar siempre la última versión de la biblioteca porque no podría tener una compilación repetible si la necesita.
Quiero decir, si tiene que verificar su versión anterior de su APK de su sistema de control de control de fuente (por ejemplo, Git) que sabe que funciona bien, si compila hoy (la nueva versión de la biblioteca podría haber sido lanzada) ... tal vez su antigua amigo APK que estaba funcionando bien ... ahora no funciona bien como el último.
Dicho esto, te sugiero que utilices un plugin de gradle como ese:
https://github.com/ben-manes/gradle-versions-plugin
Instalarás en tu build.gradle a nivel de proyecto así:
// 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
}
Y encontrará una nueva tarea de gradle llamada dependencyUpdate
que, si la almuerza, le informará todas las versiones de su biblioteca en comparación con las más recientes:
------------------------------------------------------------
: 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]
Puedes hacer lo siguiente:
- Usa la configuración que contiene tu archivo jar
- Filtro para el nombre del archivo jar
- Imprimir los resultados
Esto imprimirá la ruta completa, así como la versión. Puede extraer solo el nombre del tarro si es necesario.
task printPmdVersion << {
FileTree pmdJar = zipTree(configurations.pmd.filter {
dep -> dep.name.contains("pmd-core")
}.singleFile)
println pmdJar
}
Ejemplo de salida:
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 "
Si desea consultar la descripción general de todas sus dependencias, puede verificar con este comando:
Solución 1-
./gradlew app:dependencies
O
Solución 2-
Si desea verificar una dependencia específica, puede usar la dependencia dependiente de gradlesInsight: -
gradle dependencyInsight --configuration compile --dependency compile ''test:test:+''
o
Solución 3-
Puedes consultar tu carpeta de proyectos .idea
Dentro de tu proyecto -> .idea / bibliotecas
Allí también se puede ver la versión final de las dependencias utilizadas.
Una vez que haya agregado su dependencia como "compile ''test: test: +''" genere el proyecto.
Luego, dentro de la jerarquía de la estructura de carpetas " Proyecto ", encuentre esa dependencia dentro de " Bibliotecas externas " en la parte inferior de la estructura de carpetas, junto con su versión allí. Use esa versión con su dependencia y vuelva a sincronizar / construir el proyecto nuevamente.