У меня есть набор скриптов gradle build, который использует JAXB для генерации Java классов из XSD. Я могу сгенерировать классы Java, однако в этих классах, по-видимому, отсутствуют зависимости, и они не будут скомпилированы.
build.gradle
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
configurations {
jaxb
}
repositories {
mavenCentral()
}
task genJaxb {
ext.sourcesDir = "${buildDir}/generated/jaxb"
outputs.dir sourcesDir
doLast() {
project.ant {
// Create output directories
mkdir(dir: sourcesDir)
taskdef name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath
xjc(destdir: sourcesDir) {
schema(dir: "${projectDir}/src/main/xsd", includes: '**/*.xsd')
produces(dir: sourcesDir, includes: '**/*.java')
}
}
}
}
build.dependsOn genJaxb
dependencies {
compile(files(genJaxb.sourcesDir).builtBy(genJaxb))
jaxb 'com.sun.xml.bind:jaxb-xjc:2.1.7'
compile 'javax.xml.bind:jaxb-api:2.2.3'
}
Когда я создал каталог файлов с пути сборки, классы, кажется, отсутствуют несколько зависимостей.
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
Я пытался добавить отсутствующую зависимость, но никогда не видел, чтобы она загружалась.