java - 使用第三方库管理 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
给人的印象是没有人使用模块,所以没有必要支持它。
解决方案
推荐阅读
- numpy - 了解 Tensorflow 对象检测模型的 INDArray 维度重塑
- c++ - DirectX Visual Studio 模板不起作用
- ruby - 救援后的空单引号是什么?
- python - 二叉树的最低共同祖先 - 递归解决方案
- java - 为什么我的 JTextArea 没有显示,但我的 JToolBar 是 [Java]?
- node.js - HTTP GET 请求,未收到“数据块”
- r - R中的期望最大化
- python - 带有 kivy 的 Pyinstaller - 没有名为“kivy_deps”的模块
- html - 无法改变
tag without error heroku</h1> <div id="body"><p>OK this might be user error but whenever I try to change the title tag on my Heroku website I get an application error. I followed the tutorial on the Heroku website to make a n - python - 如何处理名称冲突 collections.Counter 和 typing.Counter?