没有生成剧集文件

时间:2015-08-07 01:10:34

标签: jaxb xjc maven-jaxb2-plugin

我正在使用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>

1 个答案:

答案 0 :(得分:1)

此处的作者。

每个版本的剧集生成都是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下。