如何检测类路径中的重复 JAR?

2022-09-01 15:56:35

是否有人有代码来检测类路径中的重复 JAR?

背景:当类路径中有同一JAR的两个版本时,可能会发生非常奇怪的事情。当使用 Maven:更改依赖项并构建 WAR 等工具时,甚至可能会发生这种情况,而无需先清理。由于未清理,依赖项将在那里两次。target/webapp/WEB-INF/lib

有没有这方面的安全网?


答案 1

JBoss Tattletale可能会帮助你做到这一点。

这是一个免费工具,可以扫描项目使用的JAR文件,并为您提供有关它们的报告。

其功能包括:

  • 发现一个类是否位于多个 JAR 文件中
  • 发现同一 JAR 文件是否位于多个位置
  • 查找具有不同版本号的类似 JAR 文件

答案 2

有一个Maven插件可以做到这一点:maven-duplicate-finder-plugin

[编辑]如果要自己在单元测试中执行此操作,请使用

getClass().getClassLoader().getResources( "com/pany/package/Java.class" )

如果返回多个 ,则类路径上有重复项。URL

缺点是这仅适用于过去发生冲突的情况。从积极的方面来说,它只是几行代码(或编写帮助器方法时的一行代码),它可以在生成服务器上工作。


推荐