3

私はbasic.xsdと 2 つの他のA.xsdとを持っていB.xsdます。A.xsd2 つの異なる Java パッケージにB.xsd変換されるため、同じプラグインの 2 つの Maven 実行が必要です。

両方の XSD はbasic.xsd、一部の共有クラスを参照します。別のプロジェクトから来る場合は、クラスの重複を防ぐためにbasic.xsd使用することで、この問題をうまく解決できます。episodes

しかし、どうすれば現在のプロジェクトを参照できますか?

プラグインの最初の実行は、クラスのみをbasic.xsd独自の Java 名前空間に生成することです。その後、 と の実行はから生成されたものについて知る必要がA.xsdあります。B.xsdbasic.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

次のように、同じプラグインの 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>
于 2012-06-08T14:55:05.797 に答える