我认为这个问题与JDK 9中的模块排除无关(与java.se.ee一样),而是JDK 9 在java.xml模块中包含更新版本的org.w3c.dom.ls没有DocumentLS类.
堆栈跟踪的重要位是:
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-test/test-container.xml]; nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:414)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
Run Code Online (Sandbox Code Playgroud)
即使我在此类中包含运行时依赖项,例如xerces:xerces 2.4.0,JDK java.xml模块也是首选(我猜).
我正在使用Gradle 4.1.有没有办法限制JDK提供的模块的范围?