Mehrere WSDLs Konfigurationen Mit Maven-JAXWS
Brauche ich mehr als eine WSDL, die in meinem Maven-JAXWS-Konfiguration und ich muss angeben, verschiedene Ausgabe-Verzeichnisse für Sie, da einige von der Methode, die Namen in wsdlA Konflikt mit Methodennamen in wsdlB. Ich bin mit der org.jvnet.jax-ws-commons und ich brauche Bindungen gelten nur für wsdlA, nicht wsdlB.
Dies ist, was ich im moment:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Configure Output -->
<packageName>com.mycee.project.model</packageName>
<sourceDestDir>src/main/java</sourceDestDir>
<!-- Configure WSDL Location -->
<wsdlFiles>
<wsdlFile>
${basedir}/src/jaxws/wsdl/wsdla.wsdl
</wsdlFile>
<!--
<wsdlFile>
${basedir}/src/jaxws/wsdl/wsdlb.wsdl
</wsdlFile>
-->
</wsdlFiles>
<!-- Configure Binding Location -->
<bindingDirectory>
${basedir}/src/jaxws/binding
</bindingDirectory>
<!-- Make Output Verbose -->
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
AKTUALISIERT:
<build>
<pluginManagement>
<plugins>
<!-- WSDL GENERATOR PLUGIN -->
<!-- mvn jaxws:wsimport -->
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<!-- WSDL A -->
<execution>
<id>WSDLA</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<packageName>com.mycee.project.model.wsdla</packageName> <staleFile>${project.build.directory}/jaxws/stale/wsdl.a.done</staleFile>
<wsdlFiles>
<wsdlFile>${basedir}/src/jaxws/wsdl/wsdla.wsdl</wsdlFile>
</wsdlFiles>
<bindingDirectory>${basedir}/src/jaxws/binding</bindingDirectory>
</configuration>
</execution>
<!-- WSDL B -->
<execution>
<id>WSDLB</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<packageName>com.mycee.project.model.wsdlb</packageName>
<staleFile>${project.build.directory}/jaxws/stale/wsdl.b.done</staleFile>
<wsdlFiles>
<wsdlFile>${basedir}/src/jaxws/wsdl/wsdlb.wsdl</wsdlFile>
</wsdlFiles>
</configuration>
</execution>
</executions>
<!-- Common Config -->
<configuration>
<verbose>true</verbose>
<wsdlDirectory>
${basedir}/src/jaxws/wsdl
</wsdlDirectory>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Beim ausführen von mvn clean jaxws:wsimport, bekomme ich die folgende Meldung mit kein java-code generiert werden:
[INFO] --- jaxws-maven-plugin:2.2:wsimport (Standard-cli) @
[INFO] Keine WSDLs sind, gefunden Geben Sie
mindestens einer der folgenden Parameter: wsdlFiles, wsdlDirectory oder wsdlUrls.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die erste Sache ist nicht zu konfigurieren, die Konfiguration in den pluginManagement block. In diesem Fall ist es besser zu definieren die version des plugins nur in den pluginManagement block. Darüber hinaus erfüllen Ihre Anforderung Sie benötigen, um zwei Hinrichtungen wie diese:
${basedir}/src/wsdl.
).. Außerdem nennen das nicht ein Ziel separat besser nennen das Leben cyclce wiemvn generate-sources
. Als Sie kann sehen, ob die Konfiguration usw. ist ok. Danachmvn package
.mvn generate-sources
und nichtmvn jaxws:wsimport
für diese Antwort.haben eine Ausführung element für jede wsdl und setzen Sie die Konfiguration innerhalb es. Können Sie halten gemeinsame Konfiguration Elemente außerhalb der Ausführung element. z.B.:
Auch, nicht den generierten code in /main/src/java, wie es nicht gereinigt.