JAXB依赖性的Java 11问题



我正在尝试从Java 8版本升级到一个项目,并且在我手动添加JAXB依赖项后,我在构建时间遇到了以下错误:

'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

我正在使用gradle,所以我添加了以下依赖项:

implementation "javax.xml.bind:jaxb-api:2.2.11"
implementation "com.sun.xml.bind:jaxb-core:2.2.11"
implementation "com.sun.xml.bind:jaxb-impl:2.2.11"
implementation "javax.activation:activation:1.1.1"

我试图搜索Jaxb POM来搜索指定它的属性(tools.jar(但找不到任何东西的位置。

我在做什么错?

仅使用2.3 版本的 jaxb-...伪像。如果我们检查jaxb-parent-2.3.0.pom,则我们发现它不再使用<systemPath>${tools.jar}</systemPath>

您可以使用 ./gradlew dependencies查找导致错误的jaxb依赖性的父依赖。

然后将该依赖性升级到最新。

例如修复错误:

Errors occurred while build effective model from /home/gayanw/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-osgi/2.2.10/c926a537af564ec047ec6308df1d0d2a03364a86/jaxb-osgi-2.2.10.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-osgi:2.2.10
$ ./gradlew dependencies
|    --- io.rest-assured:xml-path:3.0.2 -> 3.3.0
|         +--- org.codehaus.groovy:groovy-xml:2.4.15 -> 2.5.9 (*)
|         +--- org.codehaus.groovy:groovy:2.4.15 -> 2.5.9
|         +--- io.rest-assured:rest-assured-common:3.3.0 (*)
|         +--- org.apache.commons:commons-lang3:3.4
|         +--- org.ccil.cowan.tagsoup:tagsoup:1.2.1
|         +--- javax.xml.bind:jaxb-api:2.2.12 -> 2.3.1
|         |    --- javax.activation:javax.activation-api:1.2.0
|         +--- com.sun.xml.bind:jaxb-osgi:2.2.10

在我的情况下,jaxb-osgiio.rest-assured:xml-path引入。因此,升级依赖性应解决。

testImplementation 'io.rest-assured:xml-path:4.2.0'

现在有同样的问题,我只是升级了我的gradle

implementation 'io.rest-assured:rest-assured:4.3.2'
implementation 'io.rest-assured:json-path:4.3.2'
compile group: 'com.sun.xml.bind', name: 'jaxb-osgi', version: '2.3.2'

错误消失了编辑:对于我的项目,如果我使用了更多更新的Jaxb-Osgi版本,则它将无法使用(错误消失,但测试停止运行(

我发现添加

ext['rest-assured.version'] = '4.3.1'

到您的build.gradle文件将覆盖带有Spring-Cloud版本的版本,并且下载的所有版本的io.rest-assured:** JARS都将具有相同的数字

最新更新