web-dev-qa-db-fra.com

Gradle - Obtenir la dernière version d'une dépendance

Quelle serait la meilleure façon de dire à Gradle ce qui suit:

Récupérez la dépendance 'junit' et prenez sa dernière version 'release'.

La gestion des référentiels Maven et Ivy est quelque chose de nouveau pour moi. J'ai essayé les étapes suivantes et elles ont pour résultat l'erreur Could not resolve dependency ...:

  • Ecrivez compile "junit:junit:latest.release" Avec les référentiels réglés sur seulement mavenCentral() (cependant, cela fonctionne si je dis "junit: junit: 4.10").

  • Écrivez compile "junit:junit:latest.release" Avec le référentiel défini de la manière suivante:

    ivy {
        // I also tried 'http://maven.org' and other possible variants.           
        url "http://repo1.maven.org" 
        layout "maven"
    }
    
  • Tentative d'utilisation du référentiel Spring Source Ivy:

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

Peut-être que je comprends mal quelque chose. Pourquoi la version dernière de la dépendance serait-elle une tâche difficile?

82
Yippie-Ki-Yay

Gradle ne prend actuellement pas en charge le RELEASE de Maven (qui est rarement utilisé et obsolète), mais il prend en charge le latest.release. Cependant, la recommandation générale est de construire par rapport aux versions exactes. Sinon, la construction peut devenir une loterie.

42
Peter Niederwieser

Il peut être parfois utile d’obtenir la dernière version - si par exemple vous libérez souvent vos propres dépendances.

Vous pouvez obtenir la dernière version comme

compile "junit:junit:+"

ou mieux préciser au moins la version majeure comme

compile "junit:junit:4.+"
235
jmruc

Découvrez le Gradle-Versions-Plugin. Il fait exactement ce que vous voulez: https://github.com/ben-manes/gradle-versions-plugin

Pour l'installation, voir la page github. En gros, vous devez ajouter ces deux lignes à votre fichier build.gradle - project:

apply plugin: 'com.github.ben-manes.versions'

buildscript {
    [...]
    dependencies {
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.8'
        [...]
    }
}
[...]

Ensuite, vous pouvez utiliser le plugin, en exécutant cette commande dans terminal dans votre répertoire de projet:

./gradlew dependencyUpdates -Drevision=release

Et cela vous indiquera quelles dépendances sont obsolètes!

24
Ben Marten

Le dernier Guide de l'utilisateur de Gradle mentionne et explique les versions de connexion ainsi:

De 7.2. Déclarer ses dépendances :

dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

... Le script de construction indique également que tout junit> = 4.0 est requis pour compiler les tests du projet.

De 23.7. Fonctionnement de la résolution de dépendance :

Si la dépendance est déclarée en tant que version dynamique (telle que 1. +), Gradle résoudra ce problème en la version statique la plus récente disponible (telle que 1.2) dans le référentiel. Pour les référentiels Maven, cela se fait à l'aide du fichier maven-metadata.xml, tandis que pour les référentiels Ivy, cela se fait par liste de répertoires.

7
RunninglVlan

Dans Android Studio:

Si vous utilisez + pour la version et vous voulez savoir quelle version est effectivement utilisée , sélectionnez Project dans l'encadré, puis sous External Libraries vous verrez le numéro de version actuel utilisé.

3
lenooh