如何解决使用依赖于Java 11的jaxb的maven deployit插件
我们刚刚将项目迁移到Java11。我们在pom中为jdk-8中存在但在jdk-11中已删除的jaxb&co软件包配置了新的依赖关系。
我们没想到的是deployit plugin未能完成工作,并且针对同一包的各个类重复了7次丑陋的错误。
NoClassDefFoundError:无法加载内置提供程序:org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlSeeAlsoProvider
这不是一个很大的惊喜。实际上,我们声明的jaxb依赖项及其在pom中的依赖项是为了使所需的库包含在应用程序包中,因为JDK中不再提供它们。但是deploy-it
有其自己的依赖性。没有诀窍是如何告诉它依赖jaxb?
我考虑了几种选择:
- 在插件的“依赖项”部分添加依赖项,但不确定如果不覆盖其pom的依赖项,将采用该依赖项。
- 将插件升级到最新版本(几年前BTW将其名称更改为xldeploy),但是system requirements仍是6.0的jdk-8。
- 向jvm添加参数以尝试使用here中记载的
--add-modules java.xml.bind
之类的方法,但是该插件在其配置中似乎不接受<argLine>
部分
我在网上彻底搜索了如何为maven插件配置依赖项,即使在该主题上,也没有找到太多信息。最多我发现目标dependency:resolve-plugins
可以在理论上为您提供插件的依赖关系树,但似乎对deployit
的作用不大
无论如何,我感觉到我的问题可能并不太常见,所以也许我搜索了错误的关键字。有人对此事有暗示吗?
解决方法
该问题的解决方案是使用maven toolchain plugin在JDK11中进行编译,同时仍在JDK 8上运行Maven。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。