Depend on the plugin: ./project/plugins.sbt
. Requires SBT 0.12.x or 0.13.x
addSbtPlugin("org.scala-sbt.plugins" % "sbt-xjc" % "0.8")
By default, all XSDs found under unmanagedResourceDirectories
will be compiled. This is repeated in the
Compile
and Test
scopes. The table below show the configuration for the Compile
scope;
replace with Test
to configure that scope.
Key | Type | Default | Description | Example |
---|---|---|---|---|
xjcLibs | Seq[ModuleId] | jaxb-api 2.1, jaxb-impl and jaxb-xjc 2.1.9 | The artifacts to download to run XJC | |
xjcPlugins | Seq[ModuleId] | The artifacts to download containing XJC plugins | ||
xjcBindings | Seq[String] | Files used to customize JAXB bindings | ||
xjcCommandLine | Seq[String] | Additional command line, e.g. -verbose -Xfluent-api | ||
xjcJvmOpts | Seq[String] | Additional JVM command line, e.g. -Djavax.xml.accessExternalSchema=file to allow compilation of schemas consisting of multiple files | ||
sources in (Compile, xjc) | Seq[File] | ${unmanagedResourceDirectories} ** "*.xsd" | Input XSD Files | sources in (Compile, xjc) <<= sourceDirectory map (_ / "main" / "schema" ** "*.xsd" get) |
sourceManaged in (Compile, xjc) | File | ${sourceManaged}/compile/xjc | Target for generated files. Should not be shared with other generated files |
See the Tests for example builds.
As a convenience, the fluent API settings are provided in SbtXjcPlugin.fluentApiSettings
The timestamps of the source XSD files is compared with the generated files, and if newer these are compiled. This occurs automatically before compilation.
You can troubleshoot problems by inspecting debug logs with > last xjc
.
Please use the Issue Tracker here if you find a bug. Do not raise bugs for problems with your schema or with usage of XJC itself.