Il existe deux projets:
A ---- a lib libons vers. 1.3.7 --- (dépend de B)
B ---- a lib commons vers. Donc, nous construisons le projet B, lib commons vers. 1.2.5 sera inclus et installé dans le dépôt local, puis ... si nous exécutons la construction de A (qui dépend de B), Maven décide que lib commons vers. 1.3.7 doit être inclus, parce que lib est à la plus petite distance de la racine de l'arbre ... Je sais que si nous définissons la version de l'artefact comme: 1.2.5 - c'est la version recommandée. Mais si nous le mettons dans [] - c'est une exigence difficile et Maven devrait appliquer une autre stratégie pour résoudre le conflit de version - pour inclure la version recommandée de cet artefact. Mais quand j'essaye de le faire, ça ne marche pas, parce que Maven prend l'artefact du dépôt loc, qui contient la référence sur lib commons vers. 1.2.5 dans le fichier manifeste, mais lib qui est inclus - commons vers. 1.3.7. Pourriez-vous nous dire comment résoudre ce problème, ou à la liste peut-être il ya des outils ou des plugins Maven qui peuvent parler de tels conflits.Dépendances version conflit maven
0
A
Répondre
1
Vous devez utiliser des exclusions sur la dépendance. Quelque chose comme ça (juste un échantillon):
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-amqp</artifactId>
<version>2.1.0.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
Si vous utilisez Eclipse et ne veulent pas le faire à la main, vous pouvez le faire en ouvrant un fichier pom et en sélectionnant l'onglet d'une « hiérarchie des dépendances » sous lequel vous pouvez voir toutes vos hiérarchies de dépendance. Ensuite, vous pouvez faire un clic droit sur la dépendance que vous souhaitez exclure, puis cliquez sur 'Exclure Maven Artifact'
0
Vous devez exécuter mvn dependency:tree
Questions connexes
- 1. Maven: Dépendances de jar de conflit
- 2. Dépendances Maven
- 3. Conflits de dépendances sur maven
- 4. Maven - dépendances transitif avec différentes versions
- 5. Sélection de dépendances Maven
- 6. Maven découvrant les dépendances
- 7. Construire Maven avec dépendances
- 8. Maven Versioning Submodules Dépendances
- 9. Maven Dépendances []
- 10. jetty maven dépendances
- 11. maven dépendances groovy
- 12. Maven, dépendances entre projets
- 13. Graines dépendances ou Maven
- 14. @ConfigurationProperties aspectj-maven-plugin conflit
- 15. Version Maven auto-pom.xml
- 16. Drools hello monde maven dépendances
- 17. jboss-common-core maven dépendances
- 18. maven attach dépendances
- 19. Dépendances privées Maven
- 20. Java, dépendances Maven
- 21. maven dépendances conditionnelles
- 22. Laveur de dépendances Maven?
- 23. Problème de dépendances Maven
- 24. Maven Convergence des dépendances
- 25. Conflit de version d'ASPNETDB.MDF
- 26. la version GetPaid conflit
- 27. Transfert de dépendances dans Maven
- 28. Maven conflit de modules multiples
- 29. décompresser les dépendances une fois avec le plugin dépendances maven
- 30. comment faire pour maven construire sur le conflit de dépendance
@jonasas, vous voulez dire que pendant la construction du projet, un projet B sera inclus sans bibliothèque commune? Mais ce n'est pas une solution. En fait, le projet A ne sait rien du projet B, maven fournit juste B.jar avec des commons vers. 1.2.5 dans le fichier MANIFEST, mais en raison de la stratégie "wins le plus proche" Maven décide que lib commons vers. 1.3.7 devrait être inclus. c'est le problème – gizzy
Si vous ne voulez pas utiliser la version 1.3.7 et que vous voulez utiliser la version du projet dépendant (1.2.5) de la bibliothèque, ne pouvez-vous pas supprimer la dépendance directe du projet A? – jonasnas