2009-07-28 5 views
3

J'ai une dépendance 3ème partie dans mon projet, qui se réfèrent à ses dépendances en référence version ouverte:Comment limiter la version d'une référence de dépendance de paquet tierce?

<version>[4.0,)</version> 

Comment je peux passer outre ce dans mon projet donc ma dépendance n'utilise pas les versions de sa dépendance plus tard que la version spécifique, 6.0 par exemple? (Les versions ultérieures à 6.0 nécessitent d'autres paquets que je ne veux pas du tout)

Répondre

3

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 
Questions connexes