Ready for any critiquing. // Tring my best to con...
# community-support
r
Ready for any critiquing. // Tring my best to convert XSD to JAVA using jaxb
// 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
?
v
I already explained you in detail what to do in https://discuss.gradle.org/t/xsd-to-java-using-jaxb/49338, you just ignored most of what I said.