【问题标题】:using maven deployit plugin which relies on jaxb with java 11使用依赖于 jaxb 和 java 11 的 maven deployit 插件
【发布时间】:2020-09-30 15:00:33
【问题描述】:

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

我们没想到的是deployit plugin 无法完成其工作,并且对于同一包的不同类重复了 7 次丑陋的错误。

NoClassDefFoundError:无法加载内置提供程序:org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlSeeAlsoProvider

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

我考虑了几个选项:

  1. 在插件的依赖项部分添加依赖项,但不确定是否不覆盖其 pom 的依赖项。
  2. 将插件升级到更新的版本(顺便说一句,它在几年前更名为 xldeploy),但 system requirements 仍然是带有 6.0 的 jdk-8。
  3. 向 jvm 添加参数以尝试使用--add-modules java.xml.bind 之类的方法,如记录的here,但插件似乎不接受其配置中的<argLine> 部分

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

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

【问题讨论】:

    标签: jaxb resteasy java-11 xl-deploy deployit


    【解决方案1】:

    解决这个问题的方法是使用maven toolchain plugin 在JDK11 中编译,同时使用JDK 8 运行Maven。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      相关资源
      最近更新 更多