我在哪里可以找到处理目录文件的 jaxb gradle 插件或自定义任务?

Where can I find a jaxb gradle plugin or custom task that handles a catalog file?

我试了好几次,都得到了

java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener

...从自定义任务中,我猜是因为 class 已被删除而不是在 JAXB API 的最新版本中被弃用,或者从我得到的 jacobono 插件中...

https://github.com/jacobono/gradle-jaxb-plugin/issues/13

一岁了还没固定? :-|

所以...还有其他方法或解决方法吗?我想我们可以重写我们的 XSD,这样我们就不需要目录文件了,但 IDK 会导致什么其他问题。

我很久以前遇到过类似的问题,试图将 JAXB 生成与 XJC 集成到我的构建中。我查看了可用的 XJC 插件(我想我只找到了一个)。但是,我发现该插件的界面很尴尬,它需要重构我的应用程序以适应插件的限制。插件的作者认为我的问题不相关。

我终于意识到,Gradle的灵活性常常让这样的问题变得无关紧要。我放弃了使用那个 XJC 插件并简单地定义了我自己的直接调用 "ant.xjc" 任务的自定义任务(Gradle 提供了所有开箱即用的 "native" Ant 任务)。我将对 ant.xjc 任务的调用放入一个采用模式文件和命名空间的函数中,我的自定义任务为我的每个 XML 模式多次调用该方法。

执行此操作时应注意的一个细节,尤其是 ant.xjc 任务,是您必须小心指定的类路径。借助 Gradle 定义非常离散的依赖项的能力,您可以指定一个 "xjc" 配置,该配置仅包含 XJC 编译器在运行时所需的 XML jar 文件。应用程序在运行时几乎不需要这些 jar 文件,因此您可以避免无缘无故地部署这些 jar 文件。