gpt4 book ai didi

Gradle JAXB WSDL 任务失败,出现 java.lang.NoClassDefFoundError : javax/xml/bind/JAXBContext

转载 作者:行者123 更新时间:2023-12-03 03:12:09 27 4
gpt4 key购买 nike

尽管已将 jaxb-api 定义为依赖项 JAXBContext,但在执行任务 genJaxb 时不会找到它。添加 jaxb-corejaxb-impl 没有任何效果。

错误信息:

FAILURE: Build failed with an exception.* Where:Build file '/Users/user/IdeaProjects/idx/fmd/build.gradle' line: 19* What went wrong:Execution failed for task ':fmd:genJaxb'.> java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext

build.gradle:


configurations {
jaxb
}

task genJaxb {
ext.sourcesDir = "${buildDir}/generated-sources/jaxb"
ext.classesDir = "${buildDir}/classes/jaxb"
ext.schema = "x.wsdl"

outputs.dir classesDir

doLast() {
project.ant {
taskdef name: "xjc", classname: "com.sun.tools.xjc.XJCTask",
classpath: configurations.jaxb.asPath
mkdir(dir: sourcesDir)
mkdir(dir: classesDir)

xjc(destdir: sourcesDir, schema: schema,
package: "hello.wsdl") {
arg(value: "-wsdl")
produces(dir: sourcesDir, includes: "**/*.java")
}

javac(destdir: classesDir, source: 1.10, target: 1.10, debug: true,
debugLevel: "lines,vars,source",
classpath: configurations.jaxb.asPath) {
src(path: sourcesDir)
include(name: "**/*.java")
include(name: "*.java")
}

copy(todir: classesDir) {
fileset(dir: sourcesDir, erroronmissingdir: false) {
exclude(name: "**/*.java")
}
}
}
}
}

dependencies {
compile "javax.xml.bind:jaxb-api:2.3.1"
compile(files(genJaxb.classesDir).builtBy(genJaxb))

jaxb "com.sun.xml.bind:jaxb-xjc:2.3.1"
}

环境:

  • Java 10.0.2
  • Gradle 4.10.2

最佳答案

有了这个依赖列表,构建终于成功了:


dependencies {
compile(files(genJaxb.classesDir).builtBy(genJaxb))

jaxb "com.sun.xml.bind:jaxb-xjc:2.3.1"
jaxb "com.sun.xml.bind:jaxb-impl:2.3.1"
jaxb "javax.xml.bind:jaxb-api:2.3.1"
jaxb "org.glassfish.jaxb:jaxb-core:2.3.0.1"
}

关于Gradle JAXB WSDL 任务失败,出现 java.lang.NoClassDefFoundError : javax/xml/bind/JAXBContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com