我有一个basic.xsd
和另外两个A.xsd
和B.xsd
。 A.xsd
和B.xsd
被转换成两个不同的Java包,所以我需要同样的插件两个Maven的执行。
双方的XSD参考basic.xsd
一些共享类。 如果basic.xsd
将来自不同的项目,我可以通过使用真的很好解决这个问题episodes
,以防止重复类。
但我怎么可以参考当前的项目?
我的插件的第一次执行生成仅从类basic.xsd
到它自己的Java命名空间。 在那之后的executios A.xsd
和B.xsd
应该知道从产生的东西basic.xsd
。
我能以某种方式指向的产生插曲basic.xsd
?
服用点状
<episodes><episodeFile>basicXSD.episode</episodeFile</episodes>
将是很好的,但就我所看到的,我只能添加依赖... :-(
<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
你可以简单地定义相同的插件这样的两次执行:
<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>