Вопрос

I have a basic.xsd and two other A.xsd and B.xsd. A.xsd and B.xsd get converted into two different java packages, therefore I need two Maven executions of the same plugin.

Both XSDs refer to basic.xsd for some shared classes. If basic.xsd would come from a different project I could solve this problem really nicely through using episodes to prevent duplicate classes.

But how can I refer to the current project?

My first execution of the plugin is to generate only classes from basic.xsd into its own java namespace. After that the executios of A.xsd and B.xsd should know about the stuff generated from basic.xsd.

Can I somehow point to the generated episode of basic.xsd?

Somehting like

<episodes><episodeFile>basicXSD.episode</episodeFile</episodes> would be nice, but as far as I can see, I can only add dependencies... :-(

Это было полезно?

Решение

<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

Другие советы

You can simply define two executions of the same plugin like this:

  <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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top