112 votes

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

Quel serait le moyen le plus simple de savoir Gradle les éléments suivants :

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

La gestion des dépôts Maven et Ivy est en quelque sorte une nouveauté pour moi. J'ai essayé les étapes suivantes et le résultat est le suivant Could not resolve dependency ... erreur :

  • Écrire compile "junit:junit:latest.release" avec des dépôts définis uniquement sur mavenCentral() (cependant, cela fonctionne si je dis "junit:junit:4.10").

  • Écrire compile "junit:junit:latest.release" avec un 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 dépôt 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 ai-je mal compris quelque chose. Pourquoi le fait d'obtenir le le plus récent de la dépendance est une tâche si difficile ?

284voto

jmruc Points 4686

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

Vous pouvez obtenir la dernière version comme

compile "junit:junit:+"

ou mieux spécifier au moins la version majeure comme

compile "junit:junit:4.+"

59voto

Peter Niederwieser Points 36369

Gradle ne prend actuellement pas en charge la fonction RELEASE (qui est rarement utilisé et déprécié), mais il supporte la méthode Ivy latest.release (et pour les instantanés latest.integration ). Cependant, la recommandation générale est de construire par rapport à des versions exactes. Dans le cas contraire, la construction peut devenir une loterie.

26voto

Ben Marten Points 893

Consultez le plugin Gradle-Versions. 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'
        [...]
    }
}
[...]

Vous pouvez ensuite utiliser le plugin en lançant la commande suivante dans le terminal, dans le répertoire de votre projet :

./gradlew dependencyUpdates -Drevision=release

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

10voto

RunninglVlan Points 150

Le dernier guide de l'utilisateur de Gradle mentionne et explique le signe plus dans les versions :

De 7.2. Déclarer vos 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 qu'un junit >= 4.0 est nécessaire pour compiler les tests du projet.

De 23.7. Fonctionnement de la résolution des dépendances :

Si la dépendance est déclarée comme une version dynamique (comme 1.+), Gradle la résoudra à la dernière version statique disponible (comme 1.2) dans le référentiel. Pour les dépôts Maven, cela se fait en utilisant le fichier maven-metadata.xml, alors que pour les dépôts Ivy, cela se fait par la liste des répertoires.

3voto

lenooh Points 507

Dans Android Studio :

Si vous utilisez + pour la version, et veulent savoir quelle version est réellement utilisé , sélectionner Project dans la barre latérale, puis sous External Libraries vous verrez le numéro de version utilisé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X