Могу ли я включить исходный код Java из нескольких проектов при запуске schemagen с использованием плагина jaxb2-maven-plugin?
У меня есть многомодульный проект maven, и мне нужно построить XML-схему из аннотированных классов JaxB. Эти классы находятся в разных проектах Maven. Могу ли я использовать плагин jaxb2-maven-plugin для генерации единой схемы, указывая на источник из всех проектов? Возможно, как это...
<configuration>
...
<includes>
<include>../OtherProj1/src/main/java/**/*.java</include>
<include>../OtherProj2/src/main/java/**/*.java</include>
<include>**/*.java</include>
</includes>
...
</configuration>
Или мне нужно создать схему для каждого проекта отдельно, а затем импортировать их в родительскую схему?
Я использую maven 2.2.1 и jaxb2-maven-plugin 1.3.
1 ответ
Я думаю, что плагин antrun - единственный способ включить источники из проекта mvn для генерации схемы XML.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>generate-resources</phase>
<configuration>
<target>
<taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask">
</taskdef>
<schemagen destdir="src/main/resources/" includes="<comma separated paths to include>"
excludes="<comma separated paths to exclude>">
<src path="src/main/java" />
<src path="../OtherProj1/src/main/java" />
<src path="../OtherProj2/src/main/java" />
</schemagen>
<move file="src/main/resources/schema1.xsd" tofile="src/main/resources/<filename>.xsd" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>