在Maven的同一项目的Maven的JAXB2-插件集,可能吗?(maven-jaxb2-plugi

2019-06-25 09:15发布

我有一个basic.xsd和另外两个A.xsdB.xsdA.xsdB.xsd被转换成两个不同的Java包,所以我需要同样的插件两个Maven的执行。

双方的XSD参考basic.xsd一些共享类。 如果basic.xsd将来自不同的项目,我可以通过使用真的很好解决这个问题episodes ,以防止重复类。

但我怎么可以参考当前的项目?

我的插件的第一次执行生成仅从类basic.xsd到它自己的Java命名空间。 在那之后的executios A.xsdB.xsd应该知道从产生的东西basic.xsd

我能以某种方式指向的产生插曲basic.xsd

服用点状

<episodes><episodeFile>basicXSD.episode</episodeFile</episodes>将是很好的,但就我所看到的,我只能添加依赖... :-(

Answer 1:

<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



Answer 2:

你可以简单地定义相同的插件这样的两次执行:

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


文章来源: maven-jaxb2-plugin episode of same project in Maven, possible?