Utilizzando maven cxf plugin cxf-codegen-plugin java artefatti da WSDL


Utilizzando maven cxf plugin cxf-codegen-plugin java artefatti da WSDL. Ma i javacodes non stanno popolando nell'IDE eclipse.

Devo specificare gli altri tag per ottenere il codice sorgente java nel progetto eclipse.

Qui di seguito è il mio pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>SampleMavenPluginStubCreation</groupId>
  <artifactId>SampleMavenPluginStubCreation</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
   <build>
        <finalName>SampleMavenPluginStubCreation</finalName>
        <plugins>
            <!-- Generate Java classes from WSDL during build -->
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>${basedir}/src/main/java</sourceRoot>
                            <wsdlOptions>
                                <wsdlOption>
                                    <wsdl>${basedir}/src/wsdl/workorder.wsdl</wsdl>
                                    <extraargs>
                                        <extraarg>-client</extraarg>
                                    </extraargs>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>

        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.cxf
                                        </groupId>
                                        <artifactId>
                                            cxf-codegen-plugin
                                        </artifactId>
                                        <versionRange>
                                            [2.1.2,)
                                        </versionRange>
                                        <goals>
                                            <goal>wsdl2java</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                 <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>

       <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/java/</source>
                </sources>
            </configuration>
        </execution>
    </executions>
 </plugin>

            </plugins>
        </pluginManagement>
   </build>
</project>

Questa è la mia struttura di cartelle.

inserisci qui la descrizione dell'immagine

Author: user630209, 2014-12-12

2 answers

È necessario generare le fonti e quindi ottenere Eclipse per sapere da dove provengono.

  1. Il primo passo è fatto facendo clic con il pulsante destro del mouse sul progetto di primo livello e scegliendo "Esegui come" → "Maven generate-sources". Questo dovrebbe costruirli sotto la directory target/generated-sources del progetto.

  2. Il secondo passo è fatto facendo clic destro sul progetto di primo livello e scegliendo "Maven" → " Aggiorna progetto...". Sarà quindi necessario assicurarsi che il progetto sia selezionato nel dialog; potrebbe essere banale (ho un sacco di progetti aperti nella mia Eclipse, ma il tuo potrebbe essere più semplice). L'opzione che ha bisogno di per essere attivata nella finestra di dialogo è "Aggiorna configurazione progetto da pom.xml " anche se un aggiornamento generale di tutto il resto non dovrebbe essere dannoso.

Potrebbe essere necessario rifarlo ogni volta che si aggiorna il sorgente WSDL. In pratica, ci vogliono solo pochi secondi, quindi non è molto oneroso.

 0
Author: Donal Fellows, 2014-12-14 21:55:55

Le versioni recenti (come in tutte le versioni degli ultimi due anni) dei plugin CXF hanno il materiale del ciclo di vita M2E integrato. Passa a 2.7.14 o 3.0.3 e molti dei tuoi problemi verranno risolti. (insieme a una tonnellata di altri bug e problemi di sicurezza)

 0
Author: Daniel Kulp, 2014-12-15 17:39:14