Si vous spécifiez la dépendance transitive explicitement dans votre projet, la version que vous spécifiez aura la priorité.
Par exemple. Dans votre POM ajouter la dépendance à l'égard com.foo:bar avec une plage de version avec une limite supérieure exclusive comme celui-ci:
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
<version>[4.0,6.0)</version>
</dependency>
</dependencies>
Mise à jour (2): Je viens de tester cela et il ne travail (je viens d'avoir une faute de frappe dans mon projet de test). Voici l'explication de mon test.
J'ai 3 projets de test: base de test, dépendance au test et test-transitif. Le projet de base de test dépend directement de la dépendance au test, la dépendance au test a une dépendance ouverte sur test-transitif. J'ai 3 versions de test transitif installé, 0.0.1, 1.0.1 et 2.0.1 Si je fais la dépendance: arbre sur base de test, je vois ceci:
name.seller.rich:test-base:jar:0.0.1
\- name.seller.rich:test-dependency:jar:0.0.1:compile
\- name.seller.rich:test-transitive:jar:2.0.1:compile
Si j'ajoute explicite dépend de test-transitive dans test-base avec la plage de dépendance définie sur [0.0.1,2.0.0), je reçois cet arbre à la place:
name.seller.rich:test-base:jar:0.0.1
+- name.seller.rich:test-dependency:jar:0.0.1:compile
\- name.seller.rich:test-transitive:jar:1.0.1:compile