Maven 和 XSD [错误] 无法执行目标 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:regenerate (默认):无法解析输入架构

Maven and XSD [ERROR] Failed to execute goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate (default): Unable to parse input schema(s)

提问人:codingEnthu 提问时间:9/8/2023 最后编辑:codingEnthu 更新时间:11/11/2023 访问量:99

问:

我正在开发一个应用程序,该应用程序在 XSD 文件中有许多 maxOccurs=“unbounded”,例如

<xs:element name="bar" maxOccurs="unbounded" />

<xsd:choice maxOccurs="unbounded">

我了解到这实际上是一个保持它不受限制的漏洞,我首先将其更改为“4095”,然后更改为“100”,并且在运行 mvn clean install 时,两者都抛出以下错误

[INFO] --- jaxb2:0.12.3:generate (default)
[INFO] Up-to-date check for source resources [[file: filesnames..... ]]
[INFO] Sources are not up-to-date, XJC will be executed.          
[ERROR] Failed to execute goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate (default) on project projectName: Unable to parse input schema(s). Error messages should have been provided. -> [Help 1]

如何解决这个问题?另外,maxOccurrenceences中可以使用的最大数量是多少?

xml maven xsd maven-jaxb2-插件

评论

0赞 Karsten 9/8/2023
也许是命名空间前缀?你曾经写过,下一次.xs:xsd:
0赞 codingEnthu 9/8/2023
@Karsten是的,我们都有这两种文件
0赞 Karsten 9/9/2023
我将其编译为 Java 代码没有问题,提供了哪些错误?没有相关部分,我无能为力。
0赞 codingEnthu 9/11/2023
@Karsten当它为 100 时,它工作正常,但当它是 4095 时,它会抛出 [ERROR] 无法在项目上执行目标 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:regenerate (default):无法解析输入架构。应提供错误消息。-> [帮助 1]

答:

1赞 Karsten 9/12/2023 #1

过去,我在使用 maven-jaxb2-plugin 时也遇到了严重的问题,这再次令人沮丧,因为我找不到非常有用的 Maven 插件文档。

从这些天开始,我使用 org.codehaus.mojo:jaxb2-maven-plugin

如果您不想切换到 jaxb2-maven-plugin,您应该考虑至少使用更新版本的插件。版本 0.15.3 终于对我有用了。

一些注意事项:

  • 在 0.12.3 中,我需要向插件添加一些依赖项以使其工作一半,我不得不在 0.15.3 中删除这些依赖项。
  • 现在,整个 javax 类都搬到了雅加达。因此,也许最新的插件版本不适合您。
0赞 Laurent Schoelens 11/11/2023 #2

我完全同意卡斯滕的回应

如果您想知道如何获取最新版本的 highsource 的 maven-jaxb2-plugin,请随时查看迁移指南

我们进行了许多重构,以便在最新版本(从 v3 开始)中提供最好的 jakarta 支持