在你的 build.gradle 中添加以下内容:
wsdl2javaExt {
cxfVersion = "3.5.5"
}
显式指定 Apache CXF 版本。它应该可以正确地使用 Java 8 进行编译。
嗯,错误说的是org/apache/cxf/tools/wsdlto/WSDLToJava
使用 Java 11 编译,但您的项目使用 Java 8。该类由wsdl2java
plugin:
def wsdlToJava = classLoader.loadClass("org.apache.cxf.tools.wsdlto.WSDLToJava").newInstance()
它是 Apache CXF 项目的一部分。要查看它来自哪里,您可以打印依赖关系树:
./gradlew app:dependencies --configuration wsdl2java
在结果中你可以发现:
+--- org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:+ -> 4.0.0
...
| +--- org.apache.cxf:cxf-tools-wsdlto-core:4.0.0
的版本org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb
被设定为+
,所以gradle使用最新版本,目前是4.0.0。该插件在这些行中添加了此依赖项:
// add cxf as dependency
project.dependencies {
wsdl2java "org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:$cxfVersion"
$cxfVersion
默认设置为+
,但您可以使用以下代码在 build.gradle 中覆盖它:
wsdl2javaExt {
cxfVersion = "3.5.5"
}
使用以前的 Apache CXF 版本(与 Java 8 兼容)