Java 9 模块和 uber-jar

在开发 Java 库时,我们目前使用 Apache Maven Shade 插件通过重命名其他库(jar)的包名来隐藏对其他库(jar)的内部依赖。

是否可以通过使用 Java 9 模块系统而不导出内部使用的库的名称来隐藏这些内部库依赖项?IE:

  1. 模块 A 和 B 都包含但不导出类 org.codehaus.jackson.map.ObjectMapper(使用例如 Maven Shade 插件包含)具有不同版本的类

  2. 模块 A 使用模块 B

每个模块还会使用它的实现 org.codehaus.jackson.map.ObjectMapper 吗?

我相信它应该如此,但我没有找到明确证实这一点的文档,也没有任何文本/示例为这个非常常见的版本控制问题推荐这种方法。


蛊毒传说
浏览 130回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java