(我刚刚在Gradle论坛上问过这个问题,但我的结论是SO只是更好的工作。)
我正在考虑修改现有的Gradle构建脚本。它目前尝试执行"ant",以便从特定的ant构建脚本运行目标。这似乎是特定于平台的,在我的Windows机器上失败了。我正试图将其转换为导入构建脚本并执行所需转换任务的更可移植(?)过程。
我做的第一件事就是添加"ant"。importBuild"语句,然后运行它。失败的根本原因如下:
Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at org.apache.tools.ant.util.JAXPUtils.newSAXParser(JAXPUtils.java:215)
at org.apache.tools.ant.util.JAXPUtils.getNamespaceXMLReader(JAXPUtils.java:172)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:244)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:177)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
at org.apache.tools.ant.ProjectHelper$configureProject.call(Unknown Source)
at org.gradle.api.internal.project.DefaultAntBuilder.importBuild(DefaultAntBuilder.groovy:76)
从web上的相关事件来看,很明显存在类路径冲突(没有告诉我任何不明显的事情),但我不知道如何解决这个问题。
所讨论的构建脚本来自Mockito代码库(https://github.com/mockito/mockito),因此您可以在那里看到它们。我只加了"蚂蚁"。importBuild 'build-ant.xml'"就在执行Ant目标的地方之前。
我在使用xerces时遇到过类似的问题,这是由于版本较新导致的。xerces是自动使用的,因为gradle默认使用较新的版本。
我建议你使用gradle的dependencies任务来检查