0

我正在尝试使用 Java 8 构建一个 Confluence 插件。它可以使用 Java 7 正确构建。它使用 jaxb2-maven-plugin,其中一个定义为“schemagen”和阶段“generate-resources”的执行正在抛出这个错误:

[ERROR] Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:2.3.1:schemagen (restTypes) on project bb-team-plugin: 
        Execution restTypes of goal org.codehaus.mojo:jaxb2-maven-plugin:2.3.1:schemagen failed: 
        syntax error @[1,1] in file: MY_WORKDIR/target/generated-sources/jaxb/META-INF/sun-jaxb.episode -> [Help 1]

我拥有的绑定文件:

<jxb:bindings jxb:version="1.0" jxb:extensionBindingPrefixes="xjc"
 xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
 xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
    <jxb:globalBindings>
      <xjc:simple />
    </jxb:globalBindings>
</jxb:bindings>

在 maven 中使用 -e 或 -X 不会抛出任何额外有用的输出,在执行配置中使用会抛出 SAXParseException 警告和上述相同的错误。

我已经将我的 sun-jaxb.episode 与其他示例(如本网站https://github.com/highsource/maven-jaxb2-plugin/wiki/Using-Episodes)进行了比较,它具有完全相同的结构,看起来没什么里面畸形

知道会发生什么吗?

4

1 回答 1

1

这可能为时已晚或不完全是您正在寻找的东西,但这可能对某人有所帮助。

尝试使用 JAXB2 从带注释的类生成 XSD 时,我在项目中遇到了相同的语法错误(“文件中的语法错误 @[1,1]:”)。我相信插件也在查看我的 xsd 文件,因此抛出了 SAXParseException,所以我在 pom.xml 中包含了一个排除过滤器,如下所示:

                <schemaSourceExcludeFilters>
                    <myExcludes implementation="org.codehaus.mojo.jaxb2.shared.filters.pattern.PatternFileFilter">
                        <patterns>
                            <pattern>\.xsd</pattern>
                        </patterns>
                    </myExcludes>
                </schemaSourceExcludeFilters>

更多关于这个:http ://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/schemagen-mojo.html

这为我做到了。我之前尝试过的另一件事是从文件路径中删除空格(我的项目名称有空格),因为这似乎会生成一个尚未修复的旧错误。关于这个问题看看:https ://github.com/mojohaus/jaxb2-maven-plugin/issues/48

希望能帮助到你!

于 2018-06-05T21:30:25.743 回答