2012-06-29 53 views
3

我使用JAX-WS maven插件(org.jvnet.jax-ws-commons:jaxws-maven-plugin版本2.2)從我的項目中的一堆WSDL文件生成類,並且由於WSDL永遠不會真正改變,所以我想在默認情況下禁用這個代碼生成,並且僅對於我創建的特定Maven配置文件啓用它。這個插件的元素支持一個元素,但將其設置爲true似乎什麼都不做。我在這裏做錯了什麼?或者,這是一個已知的錯誤,還有什麼我可以做,以避免代碼生成?Maven jaxws插件 - 跳過執行

我的插件配置是這樣的:

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

非常感謝,

約瑟夫。

回答

3

那麼,只需在<profile>區塊中完成它(我的意思是插件聲明及其所有內容)。我不會依賴一些神奇的插件特定的解決方案。只需使用Maven提供的開箱即用功能,並使用<plugin>即可創建<profile>

+0

完美 - 我沒意識到你可以將這些東西放入配置文件塊! –