Je rencontre des ennuis avec une classe multiple avec le même chemin (c'est le même nom, même paquet !!!).
Pour une raison quelconque, GWT-DV est livré avec sa propre version de En même temps, le printemps dépend également de ces classes, mais de différents pot. Je ne sais pas ce qui devrait être, mais ressemble à Une chose drôle est que Eclipse peut exécuter le même code (c'est un test unitaire) sans problème, mais Surefire ne peut pas. Je suppose donc que le problème est dû à la façon dont chaque coureur considère la priorité de chaque bocal. P>
Venez maintenant à la question suivante: Comment puis-je configurer mon POM afin que je puisse être sûr que lorsque tout le code exécutant à l'intérieur de mon application, la classe d'un pot sera sélectionnée sur la classe d'un autre bocal? p>
Merci. P> org.apache.xerces.jaxp.documentbuilderfactoryimpl code> et
javax.xml.parsers.documentbuilderfactory code>. P>.
xalan code> &
XML-API code> sont les deux dépendances que le ressort dépend de (ces dépendances sont facultatives) p>
3 Réponses :
Les dépendances au sein de projets Maven peuvent être tracas pour résoudre les problèmes de dépannage. Ce que je fais normalement, c'est ... P>
J'espère que cela vous aide! P>
Eh bien, j'ai encore besoin de la dépendance qui introduisent les problèmes. Je veux seulement la prioriser à bas prix.
Pour savoir quel pot vous cause des problèmes: exécutez Maven avec le drapeau -x.
Pour configurer votre POM pour exclure le (s) bocal (s) pertinent (s): p>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${your.lib.for.example}</outputDirectory> <overWriteSnapshots>true</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> <excludeTransitive>false</excludeTransitive> <excludeArtifactIds>${yourproject.deployment.excludes}</excludeArtifactIds> <includeScope>compile</includeScope> </configuration> </execution> </executions> </plugin>
Venez maintenant à la question suivante: Comment puis-je configurer mon POM afin que je puisse être sûr que lorsque tout le code exécutant à l'intérieur de mon application, la classe d'un pot sera sélectionnée sur la classe d'un autre bocal? p> blockQuote>
Depuis Maven 2.0.9, Maven utilise l'ordre des dépendances dans le POM pour construire le point de classe afin que vous puisse le manipuler. Déclarez simplement le JAR «Droite» d'abord et votre application choisira la classe de celle-ci. P>
des notes de sortie de Maven 2.0.9: P>
MNG-1412 / MNG-3111 a introduit un ordre déterministe des dépendances sur la classe de classe. Dans le passé, un commandement naturel a été utilisé et cela conduit à des résultats étranges. La commande est maintenant préservée de votre POM, avec des dépendances ajoutées par héritage ajoutées en dernier. Dans les constructions qui avaient des dépendances conflictuelles ou en double, cela peut introduire une modification de la production. En bref, si vous avez des problèmes étranges avec 2.0.9, examinez les dépendances pour voir si vous avez des conflits quelque part. P> blockQuote>
Merci pour votre explication. J'ai essayé de réorganiser mon POM mais cela n'a pas tiré sur le problème. On dirait que ce n'est plus un problème d'ordre de dépendance. J'ai posé une autre question ici: Stackoverflow.com/questions/2619880/... .