Utilisation du plugin maven cxf cxf-codegen-plugin artefacts java de WSDL


Utilisation du plugin maven cxf cxf-codegen-plugin artefacts java de WSDL. Mais les javacodes ne sont pas remplis dans l'EDI eclipse.

Dois-je spécifier les autres balises pour obtenir le code source java dans le projet eclipse.

Ci-Dessous est mon pompon.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>

Ceci est ma structure de dossier.

entrez la description de l'image ici

Author: user630209, 2014-12-12

2 answers

Vous devez générer les sources et puis demander à Eclipse de savoir d'où elles viennent.

  1. La première étape se fait en cliquant avec le bouton droit sur le projet de niveau supérieur et en choisissant "Exécuter en tant que" → "Maven generate-sources". Cela devrait les construire sous le répertoire target/generated-sources du projet.

  2. La deuxième étape se fait en cliquant avec le bouton droit sur le projet de niveau supérieur et en choisissant "Maven" → "Mettre à jour le projet...". Vous devrez ensuite vous assurer que le projet est sélectionné dans le dialogue; cela pourrait être trivial (j'ai plutôt beaucoup de projets ouverts dans mon éclipse, mais le vôtre peut être plus simple). L'option que vous devez activer dans la boîte de dialogue est "Mettre à jour la configuration du projet à partir de pom.xml " bien qu'une mise à jour générale de tout le reste ne devrait pas être nuisible.

Vous devrez peut-être refaire cela chaque fois que vous mettez à jour le WSDL source. En pratique, cela ne prend que quelques secondes, donc ce n'est pas très onéreux.

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

Les versions récentes (comme dans toutes les versions des deux dernières années) des plugins CXF ont le cycle de vie M2E intégré. Mise à niveau vers 2.7.14 ou 3.0.3 et beaucoup de vos problèmes seraient résolus. (avec une tonne d'autres bugs et problèmes de sécurité)

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