Je veux imprimer la dernière version d'un dependency
en gradle.
J'ai ajouté ma dépendance de cette façon:
compile 'test:test:+'
maintenant je veux imprimer la version de ma dépendance, parce que je veux savoir quelle version j'utilise.
Je l'utilise de cette façon:
gradle dependencyInsight --configuration compile --dependency test:test
Mais ma sortie est la suivante:
+--- test:test:+ -> project : (*)
Existe-t-il de toute façon que je peux obtenir la version réelle de ma dépendance et non le +
?
Dans app
du module build.gradle
J'ai importé la bibliothèque Moshi de Square comme suit:
dependencies {
compile 'com.squareup.moshi:moshi:+'
}
Ensuite, j'ai exécuté la commande suivante dans le terminal:
./gradlew app:dependencyInsight --configuration compile --dependency com.squareup.moshi:moshi
Voici la sortie que j'ai reçue:
Une fois que vous avez ajouté votre dépendance en tant que test de "compilation": test: + "" générez le projet.
Ensuite, dans la hiérarchie de la structure de dossiers "Project", trouvez cette dépendance dans "Bibliothèques externes" au bas de la structure de dossiers, elle le sera avec sa version. Utilisez cette version avec votre dépendance et resynchronisez/créez à nouveau le projet.
Vous pouvez effectuer les opérations suivantes:
Cela imprimera le chemin complet ainsi que la version. Vous pouvez extraire uniquement le nom du bocal si nécessaire.
task printPmdVersion << {
FileTree pmdJar = zipTree(configurations.pmd.filter {
dep -> dep.name.contains("pmd-core")
}.singleFile)
println pmdJar
}
Exemple de sortie:
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'
Ce n'est pas une bonne pratique d'utiliser le signe '+' pour toujours utiliser la dernière version de la bibliothèque car vous ne pourriez pas avoir une version répétable si vous en avez besoin.
Je veux dire, si vous devez vérifier votre version précédente de votre APK à partir de votre système de gestion du contrôle de source (par exemple Git) que vous savez que cela fonctionne bien, si vous compilez aujourd'hui (la nouvelle version de la bibliothèque aurait pu être publiée) ... peut-être votre ancienne ami APK qui fonctionnait bien ... maintenant, il ne fonctionne pas bien comme votre dernier.
Cela dit, je vous suggère d'utiliser un plugin gradle comme ça:
https://github.com/ben-manes/gradle-versions-plugin
Vous allez installer dans votre build.gradle au niveau du projet comme ça:
// 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
}
Et vous trouverez une nouvelle tâche gradle nommée dependencyUpdate
que si vous la déjeunez, elle vous rapportera toutes vos versions de bibliothèque par rapport aux plus récentes:
------------------------------------------------------------
: 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]