web-dev-qa-db-fra.com

Gradle, Comment désactiver toutes les dépendances transitives

Beaucoup de mes pots ont des dépendances transitives conflictuelles (plusieurs versions de printemps). Je voudrais éviter les conflits de version hérités en gérant toutes mes dépendances de manière explicite, est-il possible de désactiver toutes les dépendances transitives dans Gradle?

Je sais que je peux ajouter transitive = false à chacune de mes dépendances, mais j'espère qu'il existe un moyen plus simple.

compile(group: 'org.springframework', name: 'spring', version: '2.5.2') {
    transitive = false
}
41
Mike Rylander

J'ai fini par utiliser:

configurations.all {
    transitive = false
}
49
Mike Rylander

Si vous souhaitez avoir un seul bloc de configuration pour toutes les configurations, vous pouvez utiliser l'opérateur de point de dispersion pour l'exprimer.

configurations {
    // other configurations e.g. - compile.exclude module: 'commons-logging'
    all*.transitive = false
}
7
michal.kreuzman

Dans mon cas, j'avais une dépendance de projet (module gradle). J'ai utilisé ce qui suit pour exclure les dépendances transitives dans Gradle 3:

implementation(project(':<module_name>')) {
    transitive = false
}