Java11 + gradle + xjcでxsdからソースコードを生成


はじめに

Java11 + gradle + xjcでxsdファイルからソースコードを生成するサンプルです。
※Java11.0.4 + gradle6.0.1で動作確認済み

ビルドファイル

こんな感じ。
src/xsd/sample.xsdにスキーマを配置して、build/xjc_outputにソースが出力されます。

plugins {
    id 'java'
}

sourceCompatibility = 11
targetCompatibility = 11

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.glassfish.jaxb:jaxb-xjc:2.3.1'
}

task xjc(type:JavaExec) {
    classpath configurations.compileOnly
    main 'com.sun.tools.xjc.XJCFacade'
    args "src/xsd/sample.xsd", "-p", "hoge.fuga", "-d", "build/xjc_output"
}

以下に全てのコードを載せています。
https://github.com/HikosakaRyo/xjc_with_java11_sample

参考にしたサイト

https://stackoverflow.com/questions/40366754/using-ant-xjc-in-gradle-to-compile-multiple-xsds-from-jar https://stackoverrun.com/ja/q/2104837 https://javaee.github.io/jaxb-v2/doc/user-guide/ch04.html#tools-xjc-ant-task