java - 从 JDK7 传递到 8 时出现 JAXB2 schemagen 语法错误

标签 java jaxb jaxb2 jaxb2-maven-plugin schemagen

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

我拥有的绑定(bind)文件:

<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 ),它具有完全相同的结构,其中看起来没有任何畸形。

知道会发生什么吗?

最佳答案

这可能有点太晚了,或者不完全是您正在寻找的内容,但这可能对某人有帮助。

当我尝试使用 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

希望对你有帮助!

关于java - 从 JDK7 传递到 8 时出现 JAXB2 schemagen 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47038411/

相关文章:

java - 抛出异常还是处理异常?

java - 在我的地址前添加 "Http://"

java - 尝试获取新插入行的 id 时出现异常

xml - 如何通过 XML 在 Spring bean 中设置 XmlAdapters 的 Jaxb2Marshaller 列表?

java - 如何使用内容类型 XML 和查询参数触发 HTTP post?

java - hibernate 标准生成器 : How to filter by a nullable entity attribute?

java - 使用 XmlIo 读取 apache beam 中的 xml 文件

java - 将 null 分配给 XMLGregorianCalendar

maven - 将 XJB 与 jaxb2-maven-plugin 一起使用

jaxb - 为什么 CXF/JAXB 在编码到 SOAP 消息之前将整个 InputStream 读入内存