【问题标题】:Package is accessible from more than one module in JDK 11 Module system可以从 JDK 11 模块系统中的多个模块访问包
【发布时间】:2019-10-14 15:06:20
【问题描述】:

我们正在使用 Zulu JDK 11,但遇到了问题包 com.sample.test 可以从多个模块访问:test1.module、test2.sample。

以下是示例项目的 git url 和截图供您参考。

https://github.com/kkvaranasi88/test1.git

【问题讨论】:

  • 截图在哪里?

标签: java struts2 java-11 java-module module-info


【解决方案1】:

一个简单的解决方案是将第二个模块 tes-2 中的包重命名为 com.sample.another.test,然后将模块描述更新为

module test2.sample {
    exports com.sample.another.test;
    requires transitive test1.module;
}

一切都会好起来的。

话虽如此,失败的原因是没有两个模块应该导出相同的package,以至于它们都在模块层解决为s冲突。

【讨论】:

  • 这将适用于用户定义的包。但是框架的呢?假设我正在使用 struts 2 上的应用程序,并且正在使用 struts2-core.jar、struts2-junit-pulugin.jar,它们共享通用包名称 org.apache.struts2。请在 git url github.com/kkvaranasi88/Test 中找到 Struts2Example,它不适用于 JDK11 甚至从 JDK 9 开始。连我都打开了jira issues.apache.org/jira/browse/WW-5032?filter=-8
猜你喜欢
  • 1970-01-01
  • 2021-06-12
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2019-12-08
  • 2019-01-25
  • 1970-01-01
相关资源
最近更新 更多