我正在尝试通过 hyperjaxb 运行真正的模式。我已经使用 jaxb 反复测试了架构,并且 jaxb 每次都正确导入架构。但是,当我尝试让 hyperjaxb 从同一架构生成带有 hibernate 注释的 java 类时,我收到以下错误:
[ERROR] Error while parsing schema(s).Location [ file:/C:/path/to/src/main/resources/schema.xsd{4,32}].
org.xml.sax.SAXParseException; systemId: file:/C:/path/to/src/main/resources/schema.xsd;
lineNumber: 4; columnNumber: 32;
Using "http://annox.dev.java.net" customizations requires the "-Xannotate" switch
to enable this plug-in.
我已经用谷歌搜索了这个错误消息并阅读了其他关于它的帖子,但没有找到任何解决它的干净说明。我找到的最接近的是这篇文章,它说 annox 插件is activated by the -Xannotate command-line argument
。
我阅读了这个链接,但是在 xsd 文件中添加以下内容并没有消除错误,可能是因为在任何地方xsd
都没有使用jaxb
前缀。
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.1"
xmlns:annox="http://annox.dev.java.net"
jaxb:extensionBindingPrefixes="annox"
我已经上传了一个包含所有相关材料的 zip 文件,以便快速将问题重现到此链接。它是项目的 zip 文件,包括预期的模式。重现问题所需要做的就是将命令行导航到解压缩项目的根目录并键入mvn clean install
以重现错误。
如何解决此错误?
编辑:
我已经尝试将以下内容添加到 pom.xml 中的插件配置中,但到目前为止还没有成功。
<args>
<arg>-Xannotate</arg>
</args>
第二次编辑:
我在 中添加了@lexicore 的建议pom.xml
,但结果是 a null pointer exception
,您可以通过单击此链接阅读。为了促进hyperjaxb
其他人更容易使用,我pom.xml
在此链接中包含了全部当前内容。这个修改pom.xml
后的 zip 文件和上面的 zip 文件一起足以在几分钟内重现问题。这是配置问题还是错误?