使用来自WSDL的maven cxf插件cxf-codegen-plugin java工件。但是javacodes没有在eclipse IDE中填充。
我是否需要指定任何其他标签来获取eclipse项目中的java源代码。
下面是我的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>
这是我的文件夹结构。
答案 0 :(得分:0)
您需要生成源代码,然后让Eclipse知道它们的来源。
第一步是通过右键单击顶级项目并选择“Run As”→“Maven generate-sources”来完成。这应该在项目的target/generated-sources
目录下构建它们。
第二步是通过右键单击顶级项目并选择“Maven”→“更新项目...”来完成的。然后,您需要确保在对话框中选择了项目;这可能是微不足道的(我在Eclipse中打开了很多项目,但是你的项目可能更简单)。 需要在对话框中打开的选项是“从pom.xml更新项目配置”,尽管其他所有内容的一般更新不应该是有害的。
每次更新源WSDL时,都可能需要重做此操作。在实践中,它只需要几秒钟,所以它不是很繁重。
答案 1 :(得分:0)
CXF插件的最新版本(如在过去几年的所有版本中)都内置了M2E生命周期内容。升级到2.7.14或3.0.3并解决了很多问题。 (以及其他一些错误和安全问题)