Я использую Apache CXF 2.x, Eclipse, Luna 64-разрядный, Maven 3.xАвтоматической WSDL Java Заглушки в Eclipse, Workspace с использованием Apache CXF и CXF Maven Plugin
У меня есть приложение, производитель одного веб-служба, имеет WSDL, и я хочу, чтобы Stub в приложении динамически генерировались из WSDL.
Я установил Maven Lifecycle Dependency и установил оба разъема M2E WTP. В проекте Eclipse -> Свойства -> Maven -> Отображение жизненного цикла, я вижу cxf-codegen-plugin: wsdl2java, и он показывает, что он правильно привязан к фазе жизненного цикла генерирующих источников.
При запуске mvn install
вручную, то окурки генерируются автоматически и все работает отлично.
Но если я очищаю проект maven и загружаю его в затмение, eclipse автоматически не генерирует заглушки. Я вижу, что Java пропускает ошибки класса в рабочей области Eclipse, показывая, что ген не происходит.
Какой шаг мне не хватает?
Это POM, который я использую.
<?xml version="1.0" encoding="UTF-8"?>
<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>com.test</groupId>
<artifactId>testWeb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>testWeb</name>
<properties>
<cxf.version>2.1.3</cxf.version>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<spring.version>3.2.2.RELEASE</spring.version>
</properties>
<repositories>
<repository>
<id>snapshots</id>
<name>ILP Snapshot Repository</name>
<url>http://dhud001.test.com:8675/maven_snapshot/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>eclipse</id>
<name>Eclipse</name>
<url>https://repo.eclipse.org/content/repositories/releases/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf</artifactId>
<version>${cxf.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/gen/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<useCompileClasspath>true</useCompileClasspath> <!-- if you don't use this, the soapui test bundle will cause classloading issues with this plugin. -->
<sourceRoot>${project.basedir}/src/gen/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${project.basedir}/src/main/webapp/wsdl/TestService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/TestService.wsdl</wsdlLocation>
<extraargs>
<extraarg>-verbose</extraarg>
<extraarg>-all</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Я был в состоянии установить разъем Maven сборки помощника, а также попытался установить https://code.google.com/a/eclipselabs.org/p/m2e-cxf-codegen-connector/, а также. Но источники по-прежнему не генерируются.
Пример затмение проект, который может воспроизвести проблему здесь: https://www.dropbox.com/s/vlo0ghbmkplu7au/service.zip?dl=0
Вы уже спрашивали список рассылки cxf-users? –
Я займусь тем, что сложно подписать и прочее. –
Возможно, имеется некоторый недокументированный флаг, например '-Dm2e.cxf.actually.work.this.time = true' или что-то в этом роде. –