带有gradle:的Java11必须指定绝对路径,但为${tools.jar}

带有gradle:的Java11必须指定绝对路径,但为${tools.jar},gradle,jaxb,build.gradle,java-11,Gradle,Jaxb,Build.gradle,Java 11,在一个使用jaxb的项目中,我们正在从Java8迁移到Java11。由于它已从JDK中删除,因此必须单独包含,这是我通过gradle配置完成的: compile("javax.xml.bind:jaxb-api:2.2.11") compile("com.sun.xml.bind:jaxb-core:2.2.11") compile("com.sun.xml.bind:jaxb-impl:2.2.11") 我能够运行该项目,但compileJava gradle作业会抛出错误: Errors

在一个使用jaxb的项目中,我们正在从Java8迁移到Java11。由于它已从JDK中删除,因此必须单独包含,这是我通过gradle配置完成的:

compile("javax.xml.bind:jaxb-api:2.2.11")
compile("com.sun.xml.bind:jaxb-core:2.2.11")
compile("com.sun.xml.bind:jaxb-impl:2.2.11")
我能够运行该项目,但compileJava gradle作业会抛出错误:

Errors occurred while build effective model from C:\Users\.\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-core\2.2.11\db0f76866c6b1e50084e03ee8cf9ce6b19becdb3\jaxb-core-2.2.11.pom:
'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-core:2.2.11
Errors occurred while build effective model from C:\Users\.\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-impl\2.2.11\2d4b554997fd01d1a2233b1529b22fc9ecc0cf5c\jaxb-impl-2.2.11.pom:
'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-impl:2.2.11
作业完成并创建了一个jar,但在生产服务器上运行时,它会停止,并出现以下错误:

java.lang.NoClassDefFoundError: javax/xml/bind/Unmarshaller$Listener

我使用的是SpringBootV1.5.6和Gradle4.8.1,解决方案是使用较新版本的jaxb库。2.3.0不再使用tools.jar。

我建议您在此处查找正在使用的库的更新版本及其发行说明,以便与更高的java版本兼容。是的,我刚刚解决了这个问题。2.3.0不再使用tools.jar。