J'ai un problème de conflit avec les dépendances.Même interface dans 2 problèmes de dépendance différents
Mon projet a deux dépendances comme celui-ci:
dependencies {
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
compile files('path/to/ABC.jar')
}
ABC.jar
a sa propre dépendance à javax.servlet:servlet-api
:
dependencies {
provided group: 'javax.servlet', name: 'servlet-api', version: '2.5'
}
Voici le problème que je traite; J'ai besoin d'utiliser l'interface ServletContext
qui est fournie par les deux bibliothèques servlet-api et le compilateur utilise un mauvais. Le correcteur résout automatiquement les conflits de version comme décrit here.
Mais dans mon cas cela n'aide pas, car cela ne fonctionne que lorsqu'une dépendance a deux versions différentes. Dans ce cas; Bien qu'il s'agisse d'un problème de version plus récent, le nom est passé de javax.servlet:servlet-api
à javax.servlet:javax.servlet-api
. Donc Gradle ne résout pas automatiquement ce conflit, car il ne semble pas y avoir de problème de version.
La chose que j'ai essayé utilisait l'exclusion de la dépendance transitive comme décrit here.
compile files('path/to/ABC.jar') {
exclude group: 'javax.servlet'
}
Mais il ne fonctionne pas, il semble exclude
ne fonctionne pas sur les fichiers « jar » locaux.
Maintenant, je ne sais pas quoi faire d'autre.
Comment puis-je exclure une dépendance d'une dépendance ajoutée en tant que fichier local?
(Si la première question n'a encore aucune réponse) Comment puis-je dire au compilateur d'utiliser l'interface ServletContext
correcte?