Классы, сгенерированные JAXB, с помощью зависимости Gradle - PullRequest
0 голосов
/ 31 марта 2020

У меня есть набор скриптов 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;

Я пытался добавить отсутствующую зависимость, но никогда не видел, чтобы она загружалась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...