如何排除maven插件配置(无法识别的参数-encoding)

How to exclude maven plugin configuration (unrecognized parameter -encoding)

我正在使用 jaxws-maven-plugin 生成一些基于 WSDL 文件的 JAX-WS 客户端。

我需要使用 JDK 1.6,所以我正在使用 JAX-WS Tools 2.1.7

<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-tools</artifactId>
    <version>2.1.7</version>
</dependency>

如果我在 2.1.7 jaxws-tools 上使用 jaxws-maven-plugin 2.2.12.3 的最新版本,我的构建将无法运行,因为添加了无效的 -encoding 参数命令行。

unrecognized parameter -encoding

完整命令是

[DEBUG] cmd.exe /X /C ""C:\Program Files\Java\jdk1.6.0_45\jre\bin\java.exe" -Xbootclasspath/p:.m2\repository\javax\xml\bind\jaxb-api.1\jaxb-api-2.1.jar;.m2\repository\javax\xml\soap\saaj-api.3\saaj-api-1.3.jar;.m2\repository\javax\xml\ws\jaxws-api.1\jaxws-api-2.1.jar org.jvnet.jax_ws_commons.jaxws.Invoker com.sun.tools.ws.wscompile.WsimportTool -keep -s <some dir> -d <some dir> -encoding UTF-8 -p <some package> file:<some wsdl file>"

下面的pom.xml没问题,我用的是2.2,没有发送编码参数。

<build>
    <plugins>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.2</version> <!-- This version works fine -->
            <executions>
                <execution>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <wsdlDirectory>src/wsdl</wsdlDirectory>
                <sourceDestDir>src/main/java</sourceDestDir>
                <wsdlFiles>
                    <wsdlFile>ConsultarStatusNfe.wsdl</wsdlFile>
                </wsdlFiles>
                <!-- for JDK 6 compilation compatibility -->
                <xnocompile>false</xnocompile>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.sun.xml.ws</groupId>
                    <artifactId>jaxws-tools</artifactId>
                    <version>2.1.7</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

我能够通过设置 <target>2.1</target> 配置来使用最新版本。

<plugin>
    <groupId>org.jvnet.jax-ws-commons</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase/>
            <goals>
                <goal>wsimport</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <wsdlDirectory>src/wsdl</wsdlDirectory>
        <sourceDestDir>src/main/generated</sourceDestDir>
        <wsdlFiles>
            <wsdlFile>myfile.wsdl</wsdlFile>
        </wsdlFiles>
        <packageName>com.souzacruz.pwnfeintegrator</packageName>
        <!-- for JDK 6 compilation compatibility -->
        <xnocompile>false</xnocompile>
        <target>2.1</target>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-tools</artifactId>
            <version>2.2.10</version>
        </dependency>
    </dependencies>
</plugin>

jaxws-tools插件2.1.1版本不支持参数“-encoding”。使用更高版本,例如它所支持的 2.2.6。