2017-11-14 5 views
1

Ich benutze einen Code unten, um eine XSD aus annotierten Java-Klassen zu generieren. Der Standardname der XSD ist immer "schema1.xsd". Wie sollte ich es nur mit diesem Plugin vordefinieren? Im Moment nutze ich maven-antrun-plugin zum Umbenennen von Dateien. Plugin manual enthält keine relevanten Informationen.Wie definiere ich den XSD-Dateinamen mit jaxb2-maven-plugin

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>schemagen</goal> 
     </goals> 
     <phase>generate-sources</phase> 
     <configuration> 
     <sources> 
      <source>src/main/java/***some package***</source> 
     </sources> 
     <outputDirectory>${project.build.directory}/generated-sources/schemas</outputDirectory> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Antwort

2

Antwort wurde gefunden. Es reicht nicht aus, nur Ihre Java-Klassen mit den JAXB-Annotationen zu versehen. In dem DTO-Paket sollte Datei "package-info.java" mit folgendem Inhalt existieren:

@XmlSchema(namespace = "http://your-namespace") 
package com.your.package; 

import javax.xml.bind.annotation.XmlSchema; 

Und die Plugin Erklärung sollte wie folgt aussehen:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>schemagen</goal> 
     </goals> 
     <phase>generate-sources</phase> 
    </execution> 
    </executions> 
    <configuration> 
    <sources> 
     <source>src/main/java/com/your/package</source> 
    </sources> 
    <outputDirectory>${project.build.directory}/generated-sources/schemas</outputDirectory> 
    <transformSchemas> 
     <transformSchema> 
     <uri>http://your-namespace</uri> 
     <toFile>your-namespace.xsd</toFile> 
     </transformSchema> 
    </transformSchemas> 
    </configuration> 
</plugin> 
Verwandte Themen