使用依赖 jaxb 的 Maven deployit 插件 java 11

using maven deployit plugin which relies on jaxb with java 11

我们刚刚将我们的项目迁移到 java11。我们在 pom 中为 jdk-8 中存在但在 jdk 中删除的 jaxb &co 包配置了新的依赖项-11.

我们没有预料到的是 deployit plugin 无法完成其工作,对于同一包的各种 类 重复了 7 次丑陋的错误。

NoClassDefFoundError: Unable to load builtin provider: org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlSeeAlsoProvider

这不是一个很大的惊喜。实际上,我们在 pom 中为 jaxb 及其种类声明的依赖项是为了使所需的库包含在应用程序包中,因为它们在 JDK 中不再可用。但是 deploy-it 有它自己的依赖关系。不,诀窍是如何告诉它依赖于 jaxb?

我考虑了几个选项:

  1. 在插件的依赖项部分添加依赖项,但不确定如果它不覆盖其 pom 的依赖项是否会被采用。
  2. 正在将插件升级到更新的版本(它更名为 xldeploy some years ago BTW), but system requirements 仍然是 jdk-8 with 6.0.
  3. 向 jvm 添加参数以尝试使用 --add-modules java.xml.bind 之类的方法,如记录 ,但插件似乎不接受其配置中的 <argLine> 部分

我在网上彻底搜索了如何为 maven 插件配置依赖项,甚至在那个主题上,也没有找到太多信息。至多我发现目标 dependency:resolve-plugins 在理论上为您提供了插件的依赖关系树,但似乎对 deployit

没有太大作用

无论如何,我感觉我的问题可能并不少见,所以也许我用谷歌搜索了错误的关键字。有人对此事有任何暗示吗?

这个问题的解决方案是在 JDK11 中使用 maven toolchain plugin 进行编译,同时仍然使用 运行 Maven 和 JDK 8.