плагин jaxb2 maven и конфигурация внутри тега выполнения

#configuration #maven #jaxb2

#конфигурация #maven #jaxb2

Вопрос:

Я пытаюсь использовать плагин JAXB2 maven для генерации кода Java из множества файлов .xsd. Если я попытаюсь сгенерировать все xsd за одно выполнение, я получу org.xml.sax.SAXParseException: 'root' is already defined . Я не могу изменять файлы xsd, поэтому мне нужно генерировать каждый из них независимо. Я нашел следующую конфигурацию pom для достижения этой цели:

 <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3</version>
<executions>
    <execution>
        <id>jaxb-Execution1</id>
        <phase>generate-sources</phase>
        <goals><goal>xjc</goal></goals>
        <configuration>
            <schemaDirectory>${jaxbSchemaDirectory}</schemaDirectory>
            <outputDirectory>${jaxbGenerateDirectory}</outputDirectory>
            <staleFile>${jaxbGenerateDirectory}/.staleFlagExecution1</staleFile>
            <bindingDirectory>${jaxbSchemaDirectory}</bindingDirectory>
            <bindingFiles>bindings1.xml</bindingFiles>
            <schemaFiles>schema1.xsd</schemaFiles>
            <clearOutputDir>false</clearOutputDir>
        </configuration>
    </execution>
    <execution>
        <id>jaxb-Execution2</id>
        <phase>generate-sources</phase>
        <goals><goal>xjc</goal></goals>
        <configuration>
            <schemaDirectory>${jaxbSchemaDirectory}</schemaDirectory>
            <outputDirectory>${jaxbGenerateDirectory}</outputDirectory>
            <staleFile>${jaxbGenerateDirectory}/.staleFlagExecution2</staleFile>
            <bindingDirectory>${jaxbSchemaDirectory}</bindingDirectory>
            <bindingFiles>bindings2.xml</bindingFiles>
            <schemaFiles>schema2.xsd</schemaFiles>
            <clearOutputDir>false</clearOutputDir>
        </configuration>
    </execution>
</executions>
  

Но это не работает. Проблема в том, что конфигурации не считываются изнутри блока выполнения. Почему это так? Я использую maven 2.2.1.

Комментарии:

1. Вы определили свойства, как ${jaxbSchemaDirectory} в вашем pom.xml ?

2. @flash Да, у меня есть. Я также ввел каталоги без каких-либо заполнителей свойств для тестирования. Проблема в том, что эти конфигурации внутри блоков выполнения игнорируются плагином.

Ответ №1:

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

 mvn jaxb2:xjc
  

Обходным путем для меня было использование:

 mvn generate-sources