我有一个basic.xsd
和另外两个A.xsd
和B.xsd
。 A.xsd
和B.xsd
被转换为两个不同的java包,因此我需要对同一个插件执行两次Maven。
对于某些共享类,两个XSD都引用basic.xsd
。如果basic.xsd
来自不同的项目,我可以通过使用episodes
来防止重复的类,从而可以很好地解决这个问题。
但我怎样才能参考当前的项目?
我第一次执行插件是只生成basic.xsd
中的类到自己的java命名空间。之后,A.xsd
和B.xsd
的执行应该知道basic.xsd
生成的内容。
我能否以某种方式指向basic.xsd
生成的剧集?
喜欢
<episodes><episodeFile>basicXSD.episode</episodeFile</episodes>
会很好,但就我所知,我只能添加依赖项......: - (
答案 0 :(得分:3)
<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
答案 1 :(得分: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>