【发布时间】:2018-10-23 12:42:00
【问题描述】:
尽管已将jaxb-api 定义为依赖项JAXBContext,但在执行任务genJaxb 时将找不到。添加jaxb-core 和jaxb-impl 没有任何效果。
错误信息:
FAILURE:构建失败并出现异常。 * 在哪里: 构建文件'/Users/user/IdeaProjects/idx/fmd/build.gradle' 行:19 * 什么地方出了错: 任务 ':fmd:genJaxb' 执行失败。 > java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContextbuild.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.2Gradle 4.10.2
【问题讨论】: