3

我有一个basic.xsd和两个其他的A.xsdB.xsdA.xsdB.xsd转换为两个不同的 java 包,因此我需要两个 Maven 执行相同的插件。

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

但是我怎么能引用当前的项目呢?

我对插件的第一次执行是只从basic.xsd它自己的 java 命名空间中生成类。之后, executiosA.xsd应该B.xsd知道从basic.xsd.

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

有点像

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

4

2 回答 2

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

于 2012-06-21T09:23:47.010 回答
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>
于 2012-06-08T14:55:05.797 回答