4 Stimmen

Maven jaxb generate plugin zum Lesen von xsd-Dateien aus mehreren Verzeichnissen

Wenn ich eine xsd-Datei in den folgenden Verzeichnissen habe

src/main/resources/xsd
src/main/resources/schema/common
src/main/resources/schema/soap

Wie kann ich das Maven Jaxb-Plugin anweisen, Jaxb-Klassen unter Verwendung aller Schemadateien im obigen Verzeichnis zu erzeugen? Ich kann die Klassendateien generieren, wenn ich einen der Ordner angebe, aber ich weiß nicht, wie ich alle drei Ordner einschließen kann.

So erzeuge ich die Dateien für einen Ordner:

<plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>src/main/resources/xsd</schemaDirectory>
            </configuration>
        </plugin>

Ich habe versucht, mehrere Einträge in das Element einzufügen, aber es werden einfach alle ignoriert, wenn ich das tue.

Danke

8voto

Timouyas Punkte 104

Sie können diese Konfiguration ausprobieren:

<configuration>
        <schemaDirectory>src/main/resources</schemaDirectory>
    <schemaIncludes>
        <include>xsd/*.xsd</include>
            <include>schema/*/*.xsd</include>
    </schemaIncludes>
</configuration>

Quelle: http://confluence.highsource.org/display/MJIIP/User+Führer

2voto

khmarbaise Punkte 86559

Das Plugin beschreibt, wie man die Schemadateien in src/main/resources und nicht in Unterordnern. Ich würde empfehlen, die Standardeinstellungen des Plugins im Sinne der Konvention über die Konfiguration zu verwenden. Darüber hinaus ist es wichtig, dass die Schemata die richtigen Dateien mit den richtigen Ordnern enthalten.

In solchen Situationen ist es am besten, ein separates Modul zu haben, das nur die Schemata und vielleicht einige unterstützende Klassen enthält.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X