Robert Dannelly
09/11/2024, 5:13 AM// Above in the build.gradle I have the following implementations, that are more, but did not include
def generated_dir = "src/main/java"
sourceSets {
generated {
java.srcDir "$gerated_dir"
}
// JAB2 configuration holds classpath for running the JAXB XJC compiler
configurations {
jaxb
}
dependencies {
jaxb "org.glassfish.jaxb:jaxb-xjc:4.0.1"
jaxb "org.glassfish.jaxb:jaxb-runtime:4.0.1"
implementation "org.glassfish.jaxb:jaxb-runtime:4.0.1"
implementation 'jakartaxml.bind:jakarta.xml.bind-api:4.0.0'
}
def addXjcTask(taskName, schema pkg, dest) {
file(dest).mkdirs()
tasks.create(name: taskName, type: JavaExec){
classpath configurations.jaxb
mainClass = 'com.sun.tools.xjc.XJCFacade'
// To explore available args download the xjc JAR manually and run java -jar jaxb-xjc.jar --help
agrs schema, "-p", pkg, "-d", dest
}
// add a dependency on the new task so it get invoked
tasks.register("convert" {
dependsOn tasks getByName(taskName)
}
}
addXjcTask("xjc-upo",
"${project.rootDir}/src/main/resources/xsd/upo/file.xsd",
"com.company.xsd.upo.12345",
"${generated_dir"
tasks.register("generateSource01, Task) {
description "Generate Java sources from XSD files"
dependsOn tasks.getByName("xjc-upo")
)
addXjcTask("xjc-upo2",
"${project.rootDir}/src/main/resources/xsd/upo/file2.xsd",
"com.company.xsd.upo.12345",
"${generated_dir"
tasks.register("generateSource02, Task) {
description "Generate Java sources from XSD files"
dependsOn tasks.getByName("xjc-upo2")
)
this does work with ./gradlew task gernateSource01
but I have to repeat for each generateSource01, 02, etc. etc.
How can I fire all the gererateSource## on ./gradlew build?Vampire
09/11/2024, 9:17 AM