【发布时间】:2020-03-26 12:58:48
【问题描述】:
当我将一个使用 jaxb 和 java.mail 的应用程序从 java 8 转换为 java 11 时,我遇到了很多看起来难以解决的模块问题。
我的 build.gradle 包括:
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
compile group: 'javax.mail', name: 'mail', version: '1.4.7'
我得到的模块错误包括:
the unnamed module reads package javax.activation from both java.activation and activation
我试过了,但没有出现同样的错误:
compile (group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1') {
exclude group: 'javax.activation', module: 'activation'
}
compile group: 'javax.mail', name: 'mail', version: '1.4.7'
我试过这个也失败了:
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
compile (group: 'javax.mail', name: 'mail', version: '1.4.7') {
exclude group: 'javax.activation', module: 'activation'
}
错误是:
java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
还尝试在 gradle 中使用各种排除语句,这些语句都以某种方式失败:
compile (group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1')
compile (group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1')
compile (group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0.1')
还有运行时错误:
class not found com.sun.activation.registries.LogSupport
【问题讨论】:
标签: jaxb jakarta-mail java-11 java-module