Несмотря на то, что определено jaxb-api
как зависимость, JAXBContext
не будет найдено при выполнении задачи genJaxb
.Добавление jaxb-core
и jaxb-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