У меня 2 файла .wsdl и 4 файла .xsd.wsdl1
import wsdl2
и wsdl2
импортирует все 4 файла xsd.У меня есть проект Gradle в Eclipse Neon и я хочу использовать
task genJaxb {
ext.sourcesDir = "${buildDir}/generated-sources/jaxb"
ext.classesDir = "${buildDir}/classes/jaxb"
ext.schema = "src/main/resources/wsdl1.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) {
arg(value: "-wsdl")
produces(dir: sourcesDir, includes: "**/*.java")
}
javac(destdir: classesDir, source: 1.6, target: 1.6, 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")
}
}
}
}
}
для генерации классов Java из файла wsdl.Это не работает, но Gradle показывает задачу jaxb как зеленую.Если вместо этого я делаю ext.schema = "src/main/resources/wsdl2.wsdl"
, он успешно генерирует классы, но мне не хватает содержимого из wsdl1
.
Редактировать после ответа:
task generateJava {
inputs.file = "src/main/resources/wsdl1.wsdl"
outputs.dir = "${buildDir}/generated/java"
doLast {
project.ant {
taskdef name: "xjc", classname: "com.sun.tools.xjc.XJCTask",
classpath: configurations.jaxb.asPath
mkdir" ${buildDir}/generated/java"
xjc(destdir: file(${buildDir}/generated/java).absolutePath, schema: inputs) {
arg(value: "-wsdl")
produces(dir: outputs, includes: "**/*.java")
}
}
}
}
sourceSets.main.java {
srcDir "{$buildDir}/generated/java"
}
compileJava.dependsOn generateJava
Выдается следующая ошибка: No such property: file for class: org.gradle.api.internal.tasks.DefaultTaskInputs Possible solutions: files