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

Java 在哪里可以找到处理目录文件的jaxb gradle插件或自定义任务?,java,xml,gradle,jaxb,Java,Xml,Gradle,Jaxb,我已经试过好几次了,但都没有成功 java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener …从自定义任务中,我猜是因为类被删除了,而不是在JAXB API的最新版本中,或者从我得到的jacobono插件中被弃用 一岁还没修好-| 所以。。。有没有其他的方法或者工作方法或者别的什么?我想我们可以重新编写我们的XSD,这样我们就不需要目录文件了,但是IDK会导致什么其他问题 不久前,我在尝试将JAXB生成与XJC集成到

我已经试过好几次了,但都没有成功

java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener
…从自定义任务中,我猜是因为类被删除了,而不是在JAXB API的最新版本中,或者从我得到的jacobono插件中被弃用

一岁还没修好-|


所以。。。有没有其他的方法或者工作方法或者别的什么?我想我们可以重新编写我们的XSD,这样我们就不需要目录文件了,但是IDK会导致什么其他问题

不久前,我在尝试将JAXB生成与XJC集成到构建中时遇到了类似的问题。我查看了可用的XJC插件(我想我只找到了一个)。然而,我发现该插件的界面很笨拙,需要重新构造我的应用程序以适应插件的限制。插件的作者认为我的问题与此无关

我最终意识到的是,Gradle的灵活性常常使类似这样的问题变得无关紧要。我放弃了使用XJC插件,只定义了自己的自定义任务,直接调用“ant.XJC”任务(Gradle提供了所有现成的“原生”ant任务)。我将对ant.xjc任务的调用放入一个接受模式文件和名称空间的函数中,并且我的自定义任务为每个XML模式多次调用该方法


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

不久前,我尝试将JAXB生成与XJC集成到构建中时遇到了类似的问题。我查看了可用的XJC插件(我想我只找到了一个)。然而,我发现该插件的界面很笨拙,需要重新构造我的应用程序以适应插件的限制。插件的作者认为我的问题与此无关

我最终意识到的是,Gradle的灵活性常常使类似这样的问题变得无关紧要。我放弃了使用XJC插件,只定义了自己的自定义任务,直接调用“ant.XJC”任务(Gradle提供了所有现成的“原生”ant任务)。我将对ant.xjc任务的调用放入一个接受模式文件和名称空间的函数中,并且我的自定义任务为每个XML模式多次调用该方法


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

Hmm。。。我的Groovy技能可能无法胜任这项任务-|您可以尝试使用Gradle中提供的本机Ant任务。我相信我曾经尝试过使用这个插件,但由于其他原因放弃了。我最终只是定义了一个调用Ant.xjc任务的自定义任务。这也是我所做的。例子很少,但我有一个有效的。只剩下2亿美元了@改变答案的格式,我会给你奶酪@戴维德,卡尔,你不想用名誉点数来回答吗?嗯。。。我的Groovy技能可能无法胜任这项任务-|您可以尝试使用Gradle中提供的本机Ant任务。我相信我曾经尝试过使用这个插件,但由于其他原因放弃了。我最终只是定义了一个调用Ant.xjc任务的自定义任务。这也是我所做的。例子很少,但我有一个有效的。只剩下2亿美元了@改变答案的格式,我会给你奶酪@DavidM.Karr难道你不想得到这个答案的声望点吗?如果你已经对Groovy很感兴趣,那么开发你自己的插件可能会很好,但我觉得我还没有解冻。;-)请注意,我在这里没有说我写了自己的插件。我只是编写了一个调用简单Groovy方法的简单自定义任务。编写简单的Gradle插件也很简单,但您通常甚至不需要这样做。如果您已经对Groovy很感兴趣,那么编写自己的插件可能会很好,但我觉得我甚至还没有解冻。;-)请注意,我在这里没有说我写了自己的插件。我只是编写了一个调用简单Groovy方法的简单自定义任务。编写简单的Gradle插件也很简单,但您通常甚至不需要这样做。