java - 如何处理 fat jar 依赖

标签 java maven dependency-management

我在我的项目中使用了一个我无法拒绝的专有依赖项。它建在一个大 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/

相关文章:

java - JVM 在创建线程并在其中执行网络操作时突然关闭

java - 如果没有附加自定义目标,maven 验证阶段是否作为生命周期的一部分执行?

ios - 在 .podspec 文件中包含一个私有(private) pod 作为另一个私有(private) pod 的依赖项

android - 如何处理应用程序对 3d 派对的依赖

algorithm - 依赖性解析算法

Java Web 框架基准测试

java - 验证页面上多个元素的两个字符串之一

java - 从 Jar 执行时未找到文件异常 -webapp 文件夹抛出异常

maven - JFrog Artifactory的系统日志中出现409 HTTP错误

java - super (空): what does this mean?