首页 > 解决方案 > 使用第三方库管理 Java9 模块

问题描述

我的团队最近开始使用 Java 9 引入的 Jigsaw 模块(实验性)。我们目前使用的是 Java 11。从一开始我们就偶然发现一个又一个问题。根据我们的经验,Springboot 2 和 Jigsaw 模块不能很好地配合使用。

实际上,我们遇到了许多不同类型的问题,这些问题大多源于同一个根本原因:第三方库没有定义自己的module-info.java. 这些库然后成为可能引入冲突的未命名模块。一个常见的例子是:

java.lang.module.ResolutionException: Modules A and B export package X.Y.Z to module C

我们团队不打算修改其源代码的两个外部库具有相同的包名称,这会导致上述错误。我们在网上找到了一些涉及修补模块的“解决方案”,但这需要大量维护,以至于我们怀疑所有这些努力是否值得。我们仍然处于一个非常小的项目中(除了 Spring 生态系统),并且担心随着我们依赖列表的增加,这些类型的问题会变得不成比例。

ResolutionException我的具体问题是:除了修补模块之外,还有什么更简单的方法可以解决上述问题?是否有关于如何处理第三方库的指南?大多数流行的框架不费心实现 a 的事实module-info.java给人的印象是没有人使用模块,所以没有必要支持它。

标签: javajava-platform-module-system

解决方案


推荐阅读