Gradle Jaxb Plugin Ошибка нескольких схем и XJB

Я использую Jacobono Gradle-Jaxb-плагин. Я пытаюсь сгенерировать классы из нескольких файлов схемы в каталоге, используя XJB для добавления аннотации к одному из классов. Я вижу следующую ошибку:

[ant:xjc] [ERROR] "file:/src/test/xsd/XSD_ONE_1_0.xsd" is not a part of this compilation. Is this a mistake for "file:/src/test/xsd/XSD_TWO_1_0.xsd"?

[ant:xjc]   line 10 of file:/src/test/xsd/xjb/xsd-bindings.xjb

Файл XJB:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:annox="http://annox.dev.java.net"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
    jaxb:extensionBindingPrefixes="xjc annox" version="2.1">

    <jaxb:bindings schemaLocation="../XSD_ONE_1_0.xsd" node="/xs:schema">
        <jaxb:bindings node="xs:complexType[@name='SomeNodeName']">
            <annox:annotate>
                <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement"
                    name="someNodeName" />
            </annox:annotate>
        </jaxb:bindings>
    </jaxb:bindings>

</jaxb:bindings>

Структура папки:

src
  test
    xsd
      xjb
        xjb-bindings.xjb
      XSD_ONE_1_0.xsd
      XSD_TWO_1_0.xsd

Соответствующая конфигурация плагина:

dependencies {
    ...

    jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.7-b41'
    jaxb 'com.sun.xml.bind:jaxb-impl:2.2.7-b41'
    jaxb 'javax.xml.bind:jaxb-api:2.2.7'
    jaxb "org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.6.5"
    jaxb "org.jvnet.jaxb2_commons:jaxb2-basics:0.6.4"
    jaxb "org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.4"
    jaxb "org.jvnet.jaxb2_commons:jaxb2-value-constructor:3.0"
}

jaxb {
    xsdDir = "${project.name}/src/test/xsd"
    bindingsDir = "${project.name}/src/test/xsd/xjb"
    bindings = ["xsd-bindings.xjb"]

    xjc {
        taskClassname = "org.jvnet.jaxb2_commons.xjc.XJC2Task"
        destinationDir = "generated-sources/jaxb"
        args = ["-Xinheritance", "-Xannotate", "-Xvalue-constructor"]
    }
}

Я попытался удалить второй xsd-файл, и тогда он, похоже, сработал, но это не будет постоянным решением.

ОБНОВИТЬ:

Я только что нашел этого человека с той же проблемой, которая записала его как проблему на Github. Это может быть просто ошибка с плагином. Я должен взглянуть на код.

https://github.com/jacobono/gradle-jaxb-plugin/issues/27

0 ответов

Другие вопросы по тегам