Maven中同一项目的maven-jaxb2-plugin剧集可能吗?

时间:2012-06-08 12:33:58

标签: maven-2 jaxb jaxb2 maven-jaxb2-plugin jaxb-episode

我有一个basic.xsd和另外两个A.xsdB.xsdA.xsdB.xsd被转换为两个不同的java包,因此我需要对同一个插件执行两次Maven。

对于某些共享类,两个XSD都引用basic.xsd。如果basic.xsd来自不同的项目,我可以通过使用episodes来防止重复的类,从而可以很好地解决这个问题。

但我怎样才能参考当前的项目?

我第一次执行插件是只生成basic.xsd中的类到自己的java命名空间。之后,A.xsdB.xsd的执行应该知道basic.xsd生成的内容。

我能否以某种方式指向basic.xsd生成的剧集?

喜欢

<episodes><episodeFile>basicXSD.episode</episodeFile</episodes>会很好,但就我所知,我只能添加依赖项......: - (

2 个答案:

答案 0 :(得分:3)

<plugin>
  <groupId>org.jvnet.jaxb2.maven2</groupId>
  <artifactId>maven-jaxb2-plugin</artifactId>
  <version>0.8.1</version>
  <executions>
    <execution>
      <id>first</id>
      ...
      <configuration>
        <episodeFile>${some.path}/first.episode</episodeFile>
      </configuration>
    </execution>
    <execution>
      <id>second</id>
      ...
      <configuration>
        <args>
          <arg>-b</arg>
          <arg>${some.path}/first.episode</arg>
        </args>
      </configuration>
    </execution>
  </executions>
</plugin>

http://docs.oracle.com/javase/6/docs/technotes/tools/share/xjc.html http://weblogs.java.net/blog/kohsuke/archive/2006/09/separate_compil.html

答案 1 :(得分:0)

你可以简单地定义同一个插件的两个执行:

  <plugin>
    <artifactId>maven-whatever-plugin</artifactId>
    <version>1.0</version>
    <executions>
      <execution>
        <id>execution1</id>
        <phase>test</phase>
        <configuration>
         ....
        </configuration>
        <goals>
          <goal>TheGoalYouNeed</goal>
        </goals>
        <phase>process-sources</phase>
      </execution>
      <execution>
        <id>execution2</id>
        <configuration>
           ...
        </configuration>
        <goals>
          <goal>TheGoalYouNeed</goal>
        </goals>
        <phase>process-sources</phase>
      </execution>
    </executions>
  </plugin>