2011-07-11 46 views
5

我试图在一个项目中生成两个xmlbeans。例如,每个人都获得参与者对象,所以我不能将它们放在一个配置中。我做的方式是使用两个excution,这里是我的pom文件:如何在一个pom文件中生成两个xmlbeans

  <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>xmlbeans-maven-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
       <execution> 
        <id>xmlbean1</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean1</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean1</schemaDirectory> 
        </configuration> 
       </execution> 
       <execution> 
        <id>xmlbean2</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean2</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean2</schemaDirectory> 
        </configuration> 
       </execution> 
      </executions> 
      <inherited>true</inherited> 
     </plugin> 

但它根本不工作。任何人都可以帮助我,谢谢

+0

是有什么错误吗? – drekka

+0

是否生成单个xmlbeans的工作? –

+0

谢谢大家,我得到了答案,下面的pom工作正常: – Luke

回答

1

你应该尝试使用另一个不同的阶段进行第二次调用。 AFAIK相同的插件无法在同一生命周期阶段执行两次。

1

这不起作用,因为id仅用于查找现有执行(当您想调整它时)。

你的问题是,Maven不能在相同的phase中运行两次相同的插件。

你有什么选择?

  1. 拆分成不同的子模块

  2. 使用Ant创建的XMLBeans和使用the antrun element.

但我不知道为什么你不能同时采用两种xmlConfig元素。只要把你所有的.xsd文件到一个目录下,并创建尽可能多的豆子从他们在必要时(见“Multiple XSDConfig Directories”)

+0

,因为thoes两个xmlbeans都有相同的组件,比如参与者,并且maven在编译时会发生冲突。 – Luke

2

谢谢大家,我得到了答案,下面的POM工作正常:

<executions> 
       <execution> 
        <id>id1</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <schemaDirectory>src/main/xsd/first</schemaDirectory> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/first</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <sourceGenerationDirectory>target/first-resource</sourceGenerationDirectory> 
         <classGenerationDirectory>target/first-class</classGenerationDirectory> 
         <staleFile>target/first/first.stale</staleFile> 
        </configuration> 
       </execution> 
       <execution> 
        <id>id2</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <schemaDirectory>src/main/xsd/second</schemaDirectory> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/second</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <sourceGenerationDirectory>target/second-resource</sourceGenerationDirectory> 
         <classGenerationDirectory>target/second-class</classGenerationDirectory> 
         <staleFile>target/second/second.stale</staleFile> 
        </configuration> 
       </execution> 
      </executions> 
相关问题