2012-10-29 69 views
0

我有两个插件生成Java文件。一个从WSDL文件生成代码,另一个从XSD模式文件生成代码。仅生成模式中的代码。多个maven生成源

如果我为每个插件分别安装Eclipse项目,那么所有源代码都会正确生成。但我希望在一个项目中都有生成代码的插件。

这里是我的POM文件:

<plugins> 

<!-- generate Java classes from schema files (binding files optional) --> 
<plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <version>0.8.2</version><!--$NO-MVN-MAN-VER$ --> 
    <executions> 
     <execution> 
      <id>xsd_phase</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
      <configuration> 
       <bindingDirectory>${project.basedir}/xsd/</bindingDirectory> 
       <schemaDirectory>${project.basedir}/xsd/</schemaDirectory> 
       <generateDirectory>${project.basedir}/target/src/generated/java/</generateDirectory> 
       <generatePackage>com.abc.xyz.jaxb</generatePackage> 
       <forceRegenerate>true</forceRegenerate> 
       <episode>false</episode> 
       <removeOldOutput>true</removeOldOutput> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 


<!-- generate Java classes from wsdl files --> 
<plugin> 
    <groupId>org.jvnet.jax-ws-commons</groupId> 
    <artifactId>jaxws-maven-plugin</artifactId> 
    <version>2.1</version> 
    <executions> 
     <execution> 
      <id>wsdl_phase</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>wsimport</goal> 
      </goals> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <packageName>com.abc.xyz.ws</packageName> 
       <wsdlDirectory>${project.basedir}/wsdl/</wsdlDirectory> 
       <sourceDestDir>${project.basedir}/target/src/generated/java/</sourceDestDir> 
       <xnocompile>false</xnocompile> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

而你的问题是......? –

回答

2

就包括在项目的build/plugins配置。 POM格式中没有任何内容阻止从不同插件将两个不同目标绑定到同一阶段(在您的案例中为generate-sources)。

唯一需要注意的是,当两个执行被绑定到相同的阶段时,它们将按照他们在POM中定义的顺序执行。换句话说,如果您要将片段复制粘贴到POM中,则在generate-sources期间,首先运行xsd_phase,然后运行wsdl_phase