javamavenjax-wsmaven-3

Maven jaxws plugin - skip execution


I'm using the JAX-WS maven plugin (org.jvnet.jax-ws-commons:jaxws-maven-plugin version 2.2) to generate classes from a bunch of WSDL files in my project, and as the WSDLs never really change I would like to disable this code generation by default, and only enable it for a particular maven profile I've created. The <configuration> element of this plugin supports a <skip> element, but setting this to true seems to do nothing. Am I doing something wrong here? Or is this a known bug, and is there something else I could do to avoid this code generation?

My plugin configuration looks like this:

     <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>

Solution

  • Well, just do it (I mean plugin declaration with all its stuff) in <profile> block. I wouldn't rely on some magic plugin-specific solutions. Just use what Maven offers out-of-the-box and create <profile> with your <plugin> stuff.