Проект Eclipse Gradle: JAXB не создает классы Java из вложенного файла WSDL

Luca H спросил: 03 ноября 2018 в 09:40 в: java

У меня есть 2 файла .wsdl и 4 файла .xsd. wsdl1 импортирует 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


0 ответов