Могу ли я включить исходный код 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>
Другие вопросы по тегам