我正在使用 JAX-WS maven 插件(
org.jvnet.jax-ws-commons:jaxws-maven-plugin
版本 2.2)从项目中的一堆 WSDL 文件生成类,并且由于 WSDL 从未真正改变,我想默认禁用此代码生成,并且只为我创建的特定 Maven 配置文件启用它。该插件的 <configuration>
元素支持 <skip>
元素,但将其设置为 true 似乎没有任何作用。我在这里做错了什么吗?或者这是一个已知的错误,我可以采取其他措施来避免生成此代码吗?
我的插件配置如下所示:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>import-wsdld</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlFiles>
<wsdlFile>MyWSDL.wsdl</wsdlFile>
</wsdlFiles>
</configuration>
</execution>
</executions>
<configuration>
<skip>true</skip>
<packageName>com.my.package</packageName>
<wsdlDirectory>src/main/resources/wsdl</wsdlDirectory>
<keep>true</keep>
<xnocompile>true</xnocompile>
<sourceDestDir>src/main/java</sourceDestDir>
<verbose>false</verbose>
</configuration>
<!-- Necessary to revert back to 2.1.7 -->
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.1.7</version>
<exclusions>
<exclusion>
<groupId>org.jvnet.staxex</groupId>
<artifactId>stax-ex</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jvnet.staxex</groupId>
<artifactId>stax-ex</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
好吧,就在
<profile>
块中执行它(我的意思是插件声明及其所有内容)。我不会依赖一些神奇的插件特定的解决方案。只需使用 Maven 提供的开箱即用的功能,并用您的 <profile>
东西创建 <plugin>
。
根据插件的文档,它没有“跳过”参数,这当然意味着它不支持。最好的解决方案是将其放入前面提到的配置文件中。