Мы перемещаем наш существующий проект из Ant + Eclipse в Maven + IntelliJ IDEA. В настоящее время я использую JAXB
для создания классов из xsd
файлов. Я хочу продолжить текущую структуру проекта, поэтому я хочу, чтобы jaxb2-maven-plugin
генерировал классы в определенном месте. У меня есть несколько схем и вы хотите генерировать классы в разных местах. Я использую несколько привязок для выполнения плагинов, чтобы сделать это, как указано в the JAXB-2 Maven plugin site. Моя проблема в том, что выполняется только первое исполнение. Генерируются ни один из классов во втором исполнении. Вот мой файл pom.xml соответствующая часть:Java - Maven JAXB-2 плагин с несколькими схемами с различными конфигурациями не генерирует классы
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>schema1</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/schemes</schemaDirectory>
<schemaFiles>myschema1.xsd</schemaFiles>
<packageName>xml</packageName>
<outputDirectory>${basedir}/src/main/java/com/example/dor/a</outputDirectory>
<arguments>-extension -Xcloneable -Xdefault-value -Xsetters -Xannotate</arguments>
<staleFile>${build.directory}/.jaxb-staleFlag-1</staleFile>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
<execution>
<id>schema2</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/schemes</schemaDirectory>
<schemaFiles>myschema2.xsd</schemaFiles>
<packageName>xml</packageName>
<outputDirectory>${basedir}/src/main/java/com/example/dor/b</outputDirectory>
<arguments>-extension -Xcloneable -Xdefault-value -Xsetters -Xannotate</arguments>
<staleFile>${build.directory}/.jaxb-staleFlag-1</staleFile>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
</executions>
</plugin>
Обновление версии вашего плагина, и реализовать фрагмент Maven, как это предусмотрено по собственной ссылке –
Спасибо я не заметил. «Внедрив фрагмент maven, предоставленный вашей собственной ссылкой», вы имеете в виду «Пример 5», как я это делал раньше? – gamlieldor
Из того, что я вижу, вам не нужны два исполнения, кроме случаев, когда вы хотите, чтобы выходной пакет из двух схем был неравномерным. Если это не требуется, вы можете просто добавить два источника в элемент source в том же самом исполнении. –