web-dev-qa-db-fra.com

Conflit de dépendance Maven: org.w3c.dom.ElementTraversal

J'ai un Java codebase qui utilise Maven à la fois pour la résolution des dépendances et l'exécution de tests sur CI. Après un lot récent de développement (assez grand pour qu'il soit difficile d'identifier le changement de rupture), certains mes tests échouent maintenant lorsqu'ils sont exécutés via Maven avec un NoClassDefFoundError pour org.w3c.dom.ElementTraversal. Lorsqu'ils sont exécutés à partir de mon IDE (IntelliJ IDEA), les mêmes tests réussissent, il est donc possible d'organiser le chemin de classe de manière à satisfaire toutes les dépendances.

Je crois org.w3c.dom.ElementTraversalexiste dans le pot xml-apis 1.4.01 (dont je dépend - voir l'arbre des dépendances ci-dessous - comme dans mon chemin de classe lorsque j'exécute mvn dependency:build-classpath), donc je ne vois pas pourquoi cela n'existe apparemment pas. J'ai essayé d'ajouter explicitement xml-apis 1.4.01 à ma section dependencyManagement (dans le pom parent, avec une dépendance dans le pom enfant, et avec toutes les autres dépendances transitives sur xml-apis exclues) mais j'ai quand même ont le même problème, donc je commence à penser que j'essaie de résoudre le mauvais problème.

Quelqu'un peut-il suggérer ce qui ne va pas ou comment je peux le déboguer davantage?

Trace de pile d'exceptions

Vous pouvez voir l'erreur complète que j'obtiens sur Travis , mais l'extrait est:

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/security-app-context.xml]; nested exception is Java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.Java:412)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:334)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:302)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:174)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:209)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:180)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.Java:125)
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.Java:94)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.Java:131)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.Java:522)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:436)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:384)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:283)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:111)
    at org.Eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.Java:746)
    at org.Eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.Java:238)
    at org.Eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.Java:1240)
    at org.Eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.Java:689)
    at org.Eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.Java:482)
    at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.Java:256)
    at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:64)
    at org.Eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.Java:229)
    at org.Eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.Java:172)
    at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:64)
    at org.Eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.Java:229)
    at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:64)
    at org.Eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.Java:95)
    at org.Eclipse.jetty.server.Server.doStart(Server.Java:279)
    at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.Java:65)
    at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:64)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.Java:520)
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.Java:365)
    at org.mortbay.jetty.plugin.JettyRunWarExplodedMojo.execute(JettyRunWarExplodedMojo.Java:164)
    at org.Apache.maven.plugin.DefaultBuildPluginManager.executojo(DefaultBuildPluginManager.Java:101)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:209)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:153)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:145)
    at org.Apache.maven.lifecycle.internal.LifecycloduleBuilder.buildProject(LifecycloduleBuilder.Java:84)
    at org.Apache.maven.lifecycle.internal.LifecycloduleBuilder.buildProject(LifecycloduleBuilder.Java:59)
    at org.Apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.Java:183)
    at org.Apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.Java:161)
    at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:320)
    at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:156)
    at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:537)
    at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:196)
    at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:141)
    at Sun.reflect.NativethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativethodAccessorImpl.invoke(NativethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:616)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.Java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:352)
Caused by: Java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:634)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
    at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:277)
    at Java.net.URLClassLoader.access$000(URLClassLoader.Java:73)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:212)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
    at org.Eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.Java:421)
    at org.Eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.Java:383)
    at org.Apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
    at org.Apache.xerces.impl.xs.XMLSchemaValidator.startDocument(Unknown Source)
    at org.Apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
    at org.Apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
    at org.Apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
    at org.Apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.Apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.Apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.Apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.Apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.Java:75)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.Java:388)
    ... 53 more
Caused by: Java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:217)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
    at org.Eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.Java:421)
    at org.Eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.Java:383)
    ... 75 more

dépendance mvn: arbre

L'arbre de dépendances du module défaillant est ci-dessous. Vous pouvez voir les fichiers pom complets sur GitHub ( parent , child ) mais je ne les inclurai pas ici pour éviter de parcourir le SO = post size limit. Vous pouvez voir ci-dessous que xml-apis est à quelques endroits, mais Maven le gère à la version 1.4.01.

--- maven-dependency-plugin:2.1:tree (default-cli) @ xssfinder-test ---
org.xssfinder:xssfinder-test:war:1.0-SNAPSHOT
+- org.xssfinder:xssfinder-executor-Java:jar:1.0-SNAPSHOT:compile
|  +- org.xssfinder:xssfinder-executor:jar:1.0-SNAPSHOT:compile
|  |  \- (org.Apache.thrift:libthrift:jar:0.8.0:compile - omitted for duplicate)
|  +- org.xssfinder:xssfinder-annotations:jar:1.0-SNAPSHOT:compile
|  +- org.Apache.thrift:libthrift:jar:0.8.0:compile
|  |  +- (org.slf4j:slf4j-api:jar:1.7.5:compile - version managed from 1.5.8; omitted for duplicate)
|  |  +- commons-lang:commons-lang:jar:2.5:compile
|  |  \- (org.Apache.httpcomponents:httpcore:jar:4.2.2:test - version managed from 4.2.1; scope managed from compile; omitted for duplicate)
|  +- org.seleniumhq.Selenium:selenium-Java:jar:2.32.0:compile
|  |  +- org.seleniumhq.Selenium:selenium-Android-driver:jar:2.32.0:compile
|  |  |  \- org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile
|  |  |     +- cglib:cglib-nodep:jar:2.1_3:compile
|  |  |     +- org.json:json:jar:20080701:compile
|  |  |     +- (org.seleniumhq.Selenium:selenium-api:jar:2.32.0:compile - omitted for duplicate)
|  |  |     +- (org.Apache.httpcomponents:httpclient:jar:4.2.1:compile - omitted for duplicate)
|  |  |     +- (com.google.guava:guava:jar:14.0:compile - version managed from 11.0.2; omitted for duplicate)
|  |  |     +- (org.Apache.commons:commons-exec:jar:1.1:compile - omitted for duplicate)
|  |  |     +- (net.Java.dev.jna:jna:jar:3.4.0:compile - omitted for duplicate)
|  |  |     \- (net.Java.dev.jna:platform:jar:3.4.0:compile - omitted for duplicate)
|  |  +- org.seleniumhq.Selenium:selenium-chrome-driver:jar:2.32.0:compile
|  |  |  \- (org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile - omitted for duplicate)
|  |  +- org.seleniumhq.Selenium:selenium-htmlunit-driver:jar:2.32.0:compile
|  |  |  +- org.seleniumhq.Selenium:selenium-api:jar:2.32.0:compile
|  |  |  |  +- (com.google.guava:guava:jar:14.0:compile - omitted for duplicate)
|  |  |  |  \- (org.json:json:jar:20080701:compile - omitted for duplicate)
|  |  |  +- net.sourceforge.htmlunit:htmlunit:jar:2.12:compile
|  |  |  |  +- xalan:xalan:jar:2.7.1:compile
|  |  |  |  |  \- xalan:serializer:jar:2.7.1:compile
|  |  |  |  |     \- (xml-apis:xml-apis:jar:1.4.01:test - version managed from 1.3.04; scope managed from compile; omitted for duplicate)
|  |  |  |  +- commons-collections:commons-collections:jar:3.2.1:compile
|  |  |  |  +- org.Apache.commons:commons-lang3:jar:3.1:compile
|  |  |  |  +- (org.Apache.httpcomponents:httpclient:jar:4.2.3:compile - omitted for conflict with 4.2.1)
|  |  |  |  +- org.Apache.httpcomponents:httpmime:jar:4.2.3:compile
|  |  |  |  |  \- (org.Apache.httpcomponents:httpcore:jar:4.2.2:test - version managed from 4.2.1; scope managed from compile; omitted for duplicate)
|  |  |  |  +- commons-codec:commons-codec:jar:1.7:compile
|  |  |  |  +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.12:compile
|  |  |  |  +- xerces:xercesImpl:jar:2.10.0:compile
|  |  |  |  |  \- (xml-apis:xml-apis:jar:1.4.01:test - version managed from 1.0.b2; scope managed from compile; omitted for duplicate)
|  |  |  |  +- net.sourceforge.nekohtml:nekohtml:jar:1.9.18:compile
|  |  |  |  +- net.sourceforge.cssparser:cssparser:jar:0.9.9:compile
|  |  |  |  |  \- org.w3c.css:sac:jar:1.3:compile
|  |  |  |  +- (commons-io:commons-io:jar:2.4:compile - omitted for conflict with 2.2)
|  |  |  |  +- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for duplicate)
|  |  |  |  \- org.Eclipse.jetty:jetty-websocket:jar:8.1.9.v20130131:compile
|  |  |  |     +- (org.Eclipse.jetty:jetty-util:jar:8.1.9.v20130131:compile - omitted for conflict with 7.6.10.v20130312)
|  |  |  |     +- (org.Eclipse.jetty:jetty-io:jar:8.1.9.v20130131:compile - omitted for conflict with 7.6.10.v20130312)
|  |  |  |     \- (org.Eclipse.jetty:jetty-http:jar:8.1.9.v20130131:compile - omitted for conflict with 7.6.10.v20130312)
|  |  |  \- org.Apache.httpcomponents:httpclient:jar:4.2.1:compile
|  |  |     +- (org.Apache.httpcomponents:httpcore:jar:4.2.2:test - version managed from 4.2.1; scope managed from compile; omitted for duplicate)
|  |  |     +- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for duplicate)
|  |  |     \- (commons-codec:commons-codec:jar:1.6:compile - omitted for conflict with 1.7)
|  |  +- org.seleniumhq.Selenium:selenium-firefox-driver:jar:2.32.0:compile
|  |  |  +- (org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile - omitted for duplicate)
|  |  |  +- commons-io:commons-io:jar:2.2:compile
|  |  |  \- org.Apache.commons:commons-exec:jar:1.1:compile
|  |  +- org.seleniumhq.Selenium:selenium-ie-driver:jar:2.32.0:compile
|  |  |  +- net.Java.dev.jna:jna:jar:3.4.0:compile
|  |  |  +- net.Java.dev.jna:platform:jar:3.4.0:compile
|  |  |  \- (org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile - omitted for duplicate)
|  |  +- org.seleniumhq.Selenium:selenium-iphone-driver:jar:2.32.0:compile
|  |  |  \- (org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile - omitted for duplicate)
|  |  +- org.seleniumhq.Selenium:selenium-safari-driver:jar:2.32.0:compile
|  |  |  +- (org.seleniumhq.Selenium:selenium-remote-driver:jar:2.32.0:compile - omitted for duplicate)
|  |  |  \- (org.webbitserver:webbit:jar:0.4.14:compile - omitted for duplicate)
|  |  +- org.seleniumhq.Selenium:selenium-support:jar:2.32.0:compile
|  |  |  \- (org.seleniumhq.Selenium:selenium-api:jar:2.32.0:compile - omitted for duplicate)
|  |  \- org.webbitserver:webbit:jar:0.4.14:compile
|  |     \- io.netty:netty:jar:3.5.2.Final:compile
|  +- org.reflections:reflections-maven:jar:0.9.8:compile
|  |  +- org.reflections:reflections:jar:0.9.8:compile
|  |  |  +- com.google.guava:guava:jar:14.0:compile
|  |  |  +- javassist:javassist:jar:3.12.1.GA:compile
|  |  |  \- dom4j:dom4j:jar:1.6.1:compile
|  |  |     \- xml-apis:xml-apis:jar:1.4.01:test
|  |  +- org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.1:compile
|  |  \- org.jfrog.jade.plugins.common:jade-plugin-common:jar:1.3.8:compile
|  |     +- (org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.3.0:compile - omitted for conflict with 1.4.1)
|  |     +- ant:ant:jar:1.6.5:compile
|  |     +- org.Apache.maven:maven-plugin-api:jar:2.0.5:compile
|  |     +- org.Apache.maven:maven-project:jar:2.0.5:compile
|  |     |  +- org.Apache.maven:maven-settings:jar:2.0.5:compile
|  |     |  |  +- (org.Apache.maven:maven-model:jar:2.0.5:compile - omitted for duplicate)
|  |     |  |  +- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     |  |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile - omitted for duplicate)
|  |     |  +- org.Apache.maven:maven-profile:jar:2.0.5:compile
|  |     |  |  +- (org.Apache.maven:maven-model:jar:2.0.5:compile - omitted for duplicate)
|  |     |  |  +- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     |  |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile - omitted for duplicate)
|  |     |  +- (org.Apache.maven:maven-model:jar:2.0.5:compile - omitted for duplicate)
|  |     |  +- org.Apache.maven:maven-artifact-manager:jar:2.0.5:compile
|  |     |  |  +- org.Apache.maven:maven-repository-metadata:jar:2.0.5:compile
|  |     |  |  |  \- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     |  |  +- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     |  |  +- (org.Apache.maven:maven-artifact:jar:2.0.5:compile - omitted for duplicate)
|  |     |  |  +- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile - omitted for duplicate)
|  |     |  |  \- org.Apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile
|  |     |  |     \- (org.codehaus.plexus:plexus-utils:jar:1.0.4:compile - omitted for conflict with 1.1)
|  |     |  +- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     |  +- (org.Apache.maven:maven-artifact:jar:2.0.5:compile - omitted for duplicate)
|  |     |  \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile
|  |     |     +- (junit:junit:jar:4.11:test - version managed from 3.8.1; scope managed from compile; omitted for duplicate)
|  |     |     +- (org.codehaus.plexus:plexus-utils:jar:1.0.4:compile - omitted for conflict with 1.1)
|  |     |     \- classworlds:classworlds:jar:1.1-alpha-2:compile
|  |     +- org.Apache.maven:maven-artifact:jar:2.0.5:compile
|  |     |  \- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     +- org.Apache.maven:maven-model:jar:2.0.5:compile
|  |     |  \- (org.codehaus.plexus:plexus-utils:jar:1.1:compile - omitted for duplicate)
|  |     +- org.codehaus.plexus:plexus-utils:jar:1.1:compile
|  |     +- xstream:xstream:jar:1.1.3:compile
|  |     \- xpp3:xpp3:jar:1.1.3.4-RC8:runtime
|  +- org.slf4j:slf4j-api:jar:1.7.5:compile
|  \- ch.qos.logback:logback-classic:jar:1.0.13:compile
|     +- ch.qos.logback:logback-core:jar:1.0.13:compile
|     \- (org.slf4j:slf4j-api:jar:1.7.5:compile - version managed from 1.5.8; omitted for duplicate)
+- org.springframework:spring-webmvc:jar:3.1.0.RELEASE:compile
|  +- org.springframework:spring-asm:jar:3.1.0.RELEASE:compile
|  +- org.springframework:spring-beans:jar:3.1.0.RELEASE:compile
|  |  \- (org.springframework:spring-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  +- org.springframework:spring-context:jar:3.1.0.RELEASE:compile
|  |  +- (org.springframework:spring-aop:jar:3.1.0.RELEASE:compile - omitted for conflict with 3.0.6.RELEASE)
|  |  +- (org.springframework:spring-beans:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-expression:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  \- (org.springframework:spring-asm:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  +- org.springframework:spring-context-support:jar:3.1.0.RELEASE:compile
|  |  +- (org.springframework:spring-beans:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-context:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  \- (org.springframework:spring-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  +- org.springframework:spring-core:jar:3.1.0.RELEASE:compile
|  |  +- (org.springframework:spring-asm:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  |  \- commons-logging:commons-logging:jar:1.1.1:compile
|  +- org.springframework:spring-expression:jar:3.1.0.RELEASE:compile
|  |  \- (org.springframework:spring-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  \- org.springframework:spring-web:jar:3.1.0.RELEASE:compile
|     +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate)
|     +- (org.springframework:spring-beans:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|     +- (org.springframework:spring-context:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|     \- (org.springframework:spring-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
+- org.springframework.security:spring-security-core:jar:3.1.0.RELEASE:compile
|  +- aopalliance:aopalliance:jar:1.0:compile
|  +- (org.springframework:spring-expression:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- org.springframework:spring-aop:jar:3.0.6.RELEASE:compile
|  |  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-asm:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-context:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  \- org.springframework.security:spring-security-crypto:jar:3.1.0.RELEASE:compile
|     \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
+- org.springframework.security:spring-security-config:jar:3.1.0.RELEASE:compile
|  +- (org.springframework:spring-context:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate)
|  +- (org.springframework:spring-aop:jar:3.0.6.RELEASE:compile - omitted for duplicate)
|  +- (org.springframework.security:spring-security-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
+- org.springframework.security:spring-security-web:jar:3.1.0.RELEASE:compile
|  +- org.springframework:spring-tx:jar:3.0.6.RELEASE:compile
|  |  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-aop:jar:3.0.6.RELEASE:compile - omitted for duplicate)
|  |  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  +- (org.springframework:spring-context:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-web:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate)
|  +- (org.springframework:spring-expression:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-aop:jar:3.0.6.RELEASE:compile - omitted for duplicate)
|  +- (org.springframework.security:spring-security-core:jar:3.1.0.RELEASE:compile - omitted for duplicate)
|  +- org.springframework:spring-jdbc:jar:3.0.6.RELEASE:compile
|  |  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  +- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  |  \- (org.springframework:spring-tx:jar:3.0.6.RELEASE:compile - omitted for duplicate)
|  +- (org.springframework:spring-context:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
|  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile - omitted for conflict with 3.1.0.RELEASE)
+- junit:junit:jar:4.11:test
|  \- org.hamcrest:hamcrest-core:jar:1.3:test
+- org.xssfinder:xssfinder-core:jar:1.0-SNAPSHOT:test
|  +- (org.xssfinder:xssfinder-executor:jar:1.0-SNAPSHOT:test - omitted for duplicate)
|  +- (org.slf4j:slf4j-api:jar:1.7.5:test - version managed from 1.5.8; omitted for duplicate)
|  +- (ch.qos.logback:logback-classic:jar:1.0.13:test - omitted for duplicate)
|  \- (com.google.guava:guava:jar:14.0:compile - version managed from 11.0.2; scope updated from test; omitted for duplicate)
+- org.Apache.httpcomponents:httpcore:jar:4.2.2:test
+- org.Eclipse.jetty:jetty-server:jar:7.6.10.v20130312:compile
|  +- org.Eclipse.jetty.orbit:javax.servlet:jar:2.5.0.v201103041518:compile
|  +- org.Eclipse.jetty:jetty-continuation:jar:7.6.10.v20130312:compile
|  \- org.Eclipse.jetty:jetty-http:jar:7.6.10.v20130312:compile
|     \- org.Eclipse.jetty:jetty-io:jar:7.6.10.v20130312:compile
|        \- (org.Eclipse.jetty:jetty-util:jar:7.6.10.v20130312:compile - omitted for duplicate)
+- org.Eclipse.jetty:jetty-servlet:jar:7.6.10.v20130312:compile
|  \- org.Eclipse.jetty:jetty-security:jar:7.6.10.v20130312:compile
|     \- (org.Eclipse.jetty:jetty-server:jar:7.6.10.v20130312:compile - omitted for duplicate)
+- org.Eclipse.jetty:jetty-webapp:jar:7.6.10.v20130312:compile
|  +- org.Eclipse.jetty:jetty-xml:jar:7.6.10.v20130312:compile
|  |  \- (org.Eclipse.jetty:jetty-util:jar:7.6.10.v20130312:compile - omitted for duplicate)
|  \- (org.Eclipse.jetty:jetty-servlet:jar:7.6.10.v20130312:compile - omitted for duplicate)
+- org.Eclipse.jetty:jetty-servlets:jar:7.6.10.v20130312:compile
|  +- (org.Eclipse.jetty:jetty-continuation:jar:7.6.10.v20130312:compile - omitted for duplicate)
|  +- org.Eclipse.jetty:jetty-client:jar:7.6.10.v20130312:compile
|  |  \- (org.Eclipse.jetty:jetty-http:jar:7.6.10.v20130312:compile - omitted for duplicate)
|  \- org.Eclipse.jetty:jetty-util:jar:7.6.10.v20130312:compile
+- org.Eclipse.jetty:jetty-jsp:jar:7.6.10.v20130312:compile
|  +- org.Eclipse.jetty.orbit:javax.servlet.jsp:jar:2.1.0.v201105211820:compile
|  |  \- (org.Eclipse.jetty.orbit:javax.servlet:jar:2.5.0.v201103041518:compile - omitted for duplicate)
|  +- org.Eclipse.jetty.orbit:org.Apache.jasper.glassfish:jar:2.1.0.v201110031002:compile
|  |  +- (org.Eclipse.jetty.orbit:javax.servlet:jar:2.5.0.v201103041518:compile - omitted for duplicate)
|  |  \- (org.Eclipse.jetty.orbit:javax.servlet.jsp:jar:2.1.0.v201105211820:compile - omitted for duplicate)
|  +- org.Eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821:compile
|  |  +- (org.Eclipse.jetty.orbit:javax.servlet:jar:2.5.0.v201103041518:compile - omitted for duplicate)
|  |  \- (org.Eclipse.jetty.orbit:javax.servlet.jsp:jar:2.1.0.v201105211820:compile - omitted for duplicate)
|  +- org.Eclipse.jetty.orbit:org.Apache.taglibs.standard.glassfish:jar:1.2.0.v201112081803:compile
|  |  \- (org.Eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821:compile - omitted for duplicate)
|  +- org.Eclipse.jetty.orbit:javax.el:jar:2.1.0.v201105211819:compile
|  +- org.Eclipse.jetty.orbit:com.Sun.el:jar:1.0.0.v201105211818:compile
|  \- org.Eclipse.jetty.orbit:org.Eclipse.jdt.core:jar:3.7.1:compile
\- javax.servlet:jstl:jar:1.2:provided
27
Rowan

J'ai finalement résolu ce problème, mais de façon assez insatisfaisante. Le correctif consistait à marquer xml-apis comme dans la portée d'exécution dans la section dependencyManagement du pom parent.

Je ne sais pas exactement pourquoi cela fonctionne (et en particulier, pourquoi cela fonctionne alors que la spécification de la dépendance comme dans la portée de compilation ne fonctionne pas). Si quelqu'un pense pouvoir expliquer cela de manière adéquate, j'aimerais le savoir.

12
Rowan

Dans mon cas, le problème a été résolu en changeant la version de xml-apis de 1.3.04 à 1.4.01

31
yegor256

Il semble que vous n'ayez pas le xml-apis dépendance spécifiée dans votre pom enfant. Le <dependencyManagement> la section n'entraîne pas l'inclusion de dépendances, elle fournit simplement une configuration qui peut être héritée. Il semble que certaines des dépendances de votre pom enfant tirent xml-apis de manière transitoire, mais pour une bizarrerie bizarre de Maven, celle qui gagne (version 1.4.01) est dans la portée du test; on peut supposer qu'il est dans la portée du test dans la dépendance qui le spécifie. Les dépendances transitives dans la portée de test dans le pom qui les spécifie ne seront pas attirées par les dépendances de votre projet qui sont dans la portée de test - c'est une phrase assez difficile à analyser, mais il y a une bonne explication de portée de la dépendance qui pourrait rendre les choses plus claires.

Essentiellement, ce que je regarde, c'est votre arbre de dépendance qui montre une version incluse de xml-apis, comme on peut le voir dans cette version modifiée de votre sortie:

org.xssfinder:xssfinder-test:war:1.0-SNAPSHOT
+- org.xssfinder:xssfinder-executor-Java:jar:1.0-SNAPSHOT:compile
   +- org.reflections:reflections-maven:jar:0.9.8:compile
      +- org.reflections:reflections:jar:0.9.8:compile
         +- com.google.guava:guava:jar:14.0:compile
         +- javassist:javassist:jar:3.12.1.GA:compile
         \- dom4j:dom4j:jar:1.6.1:compile
            \- xml-apis:xml-apis:jar:1.4.01:test

Je ne sais pas vraiment pourquoi cela se présente comme une portée de test, mais je suppose que c'est le problème. Je recommanderais d'ajouter le xml-apis la dépendance explicitement dans votre pom enfant, et en voyant si cela affecte l'arborescence des dépendances - vous essayez d'éviter de le tirer en tant que dépendance transitive, pour voir si vous pouvez résoudre le problème.

14
Conan