2017-03-16 1 views
0

Ich habe eine Menge XSD (A und B) und ihre entsprechenden Java Klassen werden von maven-jaxb2-plugin erzeugt. Java-Klassen sind im Paket P1.Tell cxf-codegen-plugin zur Verwendung vorhandener generierter Klassen

Neben habe ich eine WSDL, das einige Arten von XSD A und B verwendet

Allerdings, wenn ich Java-Klassen von meinem WSDL mit cxf-CODEGEN-Plugin erzeugen, erzeugt er Typen in Paket P2.

==> Typen in P1 und P2 sind streng identisch.

Meine Frage ist: Wie kann ich cxf-codegen-plugin das vorhandene Paket P1 verwenden?

Danke!

Hejk

Antwort

0

Ich legte meine Pom-Konfiguration. Wenn Sie einen Blick auf den Teil werfen, wo ich Pakete angegeben habe, werden Sie zwei Konfigurationen herausfinden, die ich hinzugefügt habe. Die erste ist:

<packagename>http://www.schema.org/something=info.package.p1</packagename> 

Das bedeutet, XSD auf Java-Klassen alle Dateien beim Kompilieren, das Schema haben http://www.schema.org/something in das info.package.p1 Paket gespeichert werden. Die andere unten stehende Konfiguration bedeutet, dass, wenn xsd-Dateien nicht zum ersten Schema gehören, sie im Standardpaket info.package.p2 gespeichert werden. Sie können diese Konfiguration global für jedes Ihrer Schemata separat vornehmen.

Natürlich habe ich zwei Pakete, aber Sie können in Pom-Dateikonfiguration angeben, um alle Dateien in das gleiche Paket zu legen.

Die Bindungsdatei ist optional.

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>3.1.7</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>src/main/java</sourceRoot> 
       <wsdlRoot>${basedir}/src/main/resources/wsdl/</wsdlRoot> 
        <includes> 
         <include>*your.wsdl</include> 
        </includes> 
        <wsdlOptions> 
         <wsdlOption> 
          <wsdl>${basedir}/src/main/resources/wsdl/your.wsdl</wsdl> 
          <packagenames> 
           <packagename>http://www.schema.org/something=info.package.p1</packagename> 
           <packagename>info.package.p2</packagename> 
          </packagenames> 
          <bindingFiles> 
           <bindingFile>${basedir}/src/main/resources/bindingFile.xjb</bindingFile> 
          </bindingFiles> 
         </wsdlOption> 
        </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
Verwandte Themen