Ошибка привязки JAXB с несколькими XML-схемами в одном модуле
В моем проекте maven с несколькими модулями у меня есть модуль, который определяет две схемы XML. Один содержит общие "типы", используемые другой схемой в других модулях, другой - специфическую конфигурацию для утилиты. Мне нужно предоставить как среду сборки, так и среду выполнения. Я использую maven-jaxb2-плагин.
Я сталкиваюсь с проблемой с привязкой JAXB, особенно в файле bindings.xjb. Я добавил отдельные привязки схемы для двух схем, но когда я запускаю сборку maven, я получаю сообщение об ошибке, указывающее, что одна из схем (вторая) "не является частью этой компиляции". Вот файл XJB:
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc"
jxb:version="2.1">
<jxb:globalBindings>
<xjc:javaType name="java.net.URI" xmlType="xs:anyURI"
adapter="edu.mit.ll.oms.security.common.URIBinder" />
</jxb:globalBindings>
<jxb:bindings schemaLocation="camel-config.xsd">
<jxb:schemaBindings>
<jxb:package name="a.b.c.util.config" />
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="security-common.xsd">
<jxb:schemaBindings>
<jxb:package name="a.b.c.common.config" />
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
Что я делаю неправильно? Как выполнить связывание для нескольких схем в одном модуле?
ОБНОВЛЕНИЕ: 08/07/2018 15:20 ПО ВОСТОЧНОМУ ВРЕМЕНИ
Методом проб и ошибок я обнаружил, что если я удалил определенный элемент из модуля pom.xml, ошибка была устранена. Остается вопрос: почему?
Фрагмент из pom.xml (обратите внимание, что было закомментировано):
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>AUTODETECT</schemaLanguage>
<schemaDirectory>src/main/resources/config</schemaDirectory>
<schemaIncludes>
<include>*.xsd</include>
</schemaIncludes>
<bindingIncludes>
<include>*.xjb</include>
</bindingIncludes>
<cleanPackageDirectories>true</cleanPackageDirectories>
<!--
<schemaIncludes>
<schemas>
camel-config.xsd security-common.xsd
</schemas>
</schemaIncludes>
-->
</configuration>
</plugin>
</plugins>
</build>
Я должен признать, что я не уверен, правильно ли настроен элемент комментария. Это относится к другой публикации ( однозначная документация для maven-jaxb2-plugin), которую я сделал, которая включает правильный синтаксис конфигурации для maven-jaxb2-plugin.