我在我的项目中使用了一个我无法拒绝的专有依赖项。它建在一个大 jar 里,里面收集了所有依赖包。我的意思是即使是常见的,如 slf4j-api、apache-commons、javax 包等。
将它与我自己声明的依赖项列表一起使用是有风险的,因为在类加载器中总是存在竞争,首先加载哪个类 - 我的或 fat jar 中的过时类。
我想知道有没有办法解决这个问题?如何对待这样的肥 jar ?我正在使用 maven 进行依赖管理。
最佳答案
在 Maven 中,您在 POM 中定义依赖项的顺序非常重要。 如果您以正确的顺序列出它们,则应按该顺序将它们添加到 jar 中, 无论哪个类在文件中较高,它将首先加载。
如果您将使用多个 jar 组成您的运行时类路径, 话又说回来,这是将 jar 按正确顺序放置的问题。
关于java - 如何处理 fat jar 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634511/