我正在使用maven-jaxb2-plugin构建项目
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
我设置了剧集参数
<episode>true</episode>
但是我发现没有生成.episode文件。我需要这个文件,以便这个项目可以用作另一个依赖项目中的一集。
在maven构建日志中,我确实看到了这些日志,这些日志表明了剧集&amp;插件不支持xjc支持的episodeFile参数:
[WARNING] Unknown plugin option: -episode
[WARNING] Unknown plugin option: C:\projecdir\src\main\generated-sources\META-INF\sun-jaxb.episode
这是插件中的错误吗?也有任何已知的解决方法。
更新:当useDependenciesAsEpisodes
不为假时发生奇怪的事情
useDependenciesAsEpisodes = true
如果这是真的,它会显示上面的警告。此版本有效,但不会生成剧集文件。
useDependenciesAsEpisodes = false
当我将此设置为false时,会生成剧集文件。
但是我为插件传递了一些额外的参数来打破构建。
<args>
<arg>-typeId=7000</arg>
...
</args>
错误:
Caused by: com.sun.tools.xjc.BadCommandLineException: unrecognized parameter -typeId=7000
at com.sun.tools.xjc.Options.parseArguments(Options.java:817)
at org.jvnet.mjiip.v_2.OptionsFactory.createOptions(OptionsFactory.java:91)
... 24 more
我必须删除额外的args才能使用。但是我需要一些与maven-jaxb2-plugin一起使用的jaxb插件(如显示here)的参数
<configuration>
<extension>true</extension>
<args>
<arg>-XtoString</arg>
<arg>-Xequals</arg>
<arg>-XhashCode</arg>
<arg>-Xcopyable</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version><!-- version --></version>
</plugin>
</plugins>
</configuration>
答案 0 :(得分:1)
此处maven-jaxb2-plugin和jaxb2-basics的作者。
每个版本的剧集生成都是tested quite thoroughly,所以我很确定它有效。
useDependenciesAsEpisodes
只是将所有依赖JAR添加为“剧集”JAR,这不应该影响剧集的生成。
-typeId=7000
有点可疑,哪个XJC插件处理这个命令?如果没有,这可能会干扰-episode
,所以这是我首先看到的地方。
真正有用的是查看mvn clean install -e -X
日志。它应该最终传递给XJC的论据,所以你可以发现违规行为。
如果没有任何帮助,请将最小的复制测试项目放在一起,并在https://github.com/highsource/maven-jaxb2-plugin-support ex中向我发送该项目的PR。在e/episode-file-not-being-generated
下。