dlmiles / gradle-xjc-plugin

A Gradle plugin to run the XJC binding compiler during a build
MIT License
4 stars 0 forks source link
code-generation gradle-plugins jaxb jaxb-xjc xjc xml-schema

ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: :important-caption: :heavy_exclamation_mark: :caution-caption: :fire: :warning-caption: :warning: endif::[] :github-pages-uri: https://dlmiles.github.io/gradle-xjc-plugin :github-uri: https://github.com/dlmiles/gradle-xjc-plugin :github-m2-uri: https://maven.pkg.github.com/dlmiles/gradle-xjc-plugin :maven-groupId: org.unbroken-dome :maven-groupId-new: org.darrylmiles.forked.org.unbroken-dome :uri-build-status: https://github.com/dlmiles/gradle-xjc-plugin/actions/workflows/build.yml :img-build-status: https://github.com/dlmiles/gradle-xjc-plugin/actions/workflows/build.yml/badge.svg :current-release-version: 2.2.0 :current-snapshot-version: 2.3.0-SNAPSHOT

ifdef::env-github[] image:{img-build-status}[CI-Gradle-build,link={uri-build-status}]

CI Targets: Java 8 and Java 11 for plugin project builder

Plugin artifact supports Java 8, Java 11, Java 17 and Java 21

For use with Gradle 5.6 through Gradle 8.7

endif::[]

= Gradle XJC Plugin

Invokes the xjc binding compiler from a Gradle build.

== Features

== Requirements

The Gradle plugin itself:

The XJC Tool requirements:

== Quick Start

Apply the {maven-groupId}.xjc plugin to your Gradle build script and add an appropriate dependency on the JAXB API:

ifdef::env-github[] [source,kotlin,subs="attributes+"] .settings.gradle(.kts)

pluginManagement { repositories { maven { //url = uri("{github-pages-uri}/java8/maven2") url = uri("{github-m2-uri}") content { // this repository only contains artifacts for specific groups includeGroup("org.unbroken-dome.xjc") includeGroup("org.unbroken-dome") ifdef::env-github[]

            includeGroup("{maven-groupId-new}.xjc")
            includeGroup("{maven-groupId-new}")

endif::[] } credentials { // github requires any valid credentials even to GET packages username = System.getenv("GITHUB_USERNAME") // this token requires scope 'read:packages' password = System.getenv("GITHUB_TOKEN") } } }

// Official releases only
gradlePluginPortal()   

}

endif::[] [source,kotlin,subs="normal"] .build.gradle(.kts)

plugins { id("{maven-groupId}.xjc") version "{current-release-version}" }

dependencies { implementation("javax.xml.bind:jaxb-api:2.3.0") }

Put your schemas (.xsd), binding customization files (.xjb) and catalogs (.cat) into src/main/schema.

That's it! The plugin will automatically invoke XJC to generate code from your schemas and include it the main Java compilation.

== Further Documentation