是否有任何插件/工具可用于通过 Eclipse 项目(或工作区)的类路径并突出显示任何未使用的 jar?
6 回答
ClassPathHelper是一个好的开始。
它会自动识别孤儿罐等等。
唯一的限制是没有在类中定义的依赖关系,例如在依赖注入框架配置文件中。
您还有其他选择/补充,例如:
- workingfrog "Relief",它依赖于通过检查它们的形状、大小或空间中的相对位置来处理真实对象的能力,它提供了关于 java 包、类型和字段及其关系的“物理”视图,使它们更容易处理。
- 不必要的代码检测器:一个 Eclipse 插件工具,用于查找不必要的(死)公共 java 代码。
UCDetector 对此没有帮助:它不适用于 JAR。对于classpathHelper,我无法找到一种简单的方法来列出孤儿 JAR(顺便说一句,如果有人有这方面的教程,我很感兴趣)。
所以,如果你也像我一样使用 Maven,我发现了这个很棒的 Maven 插件,我想和你分享这个解决方案。只需输入:
mvn dependency:analyze
您将立即获得依赖项中未使用的 JAR 列表。非常便利 !
我找到了一个非常快速和有趣的工具来归档这个目标:
只需解压缩程序并运行:
java -Xmx512m -jar tattletale.jar ~/myjavaproject/mydistribution output
这将生成一个非常令人印象深刻的报告,其中包含不同的点(来自他们网站的文本):
- 识别 JAR 文件之间的依赖关系
- 从类路径中查找缺失的类
- 发现一个类/包是否位于多个 JAR 文件中
- 发现同一个 JAR 文件是否位于多个位置
- 每个 JAR 文件需要和提供的列表
- 验证类的 SerialVersionUID
- 查找具有不同版本号的类似 JAR 文件
- 查找没有版本号的 JAR 文件
- 查找未使用的 JAR 档案
- 识别密封/签名的 JAR 档案
- 在 JAR 文件中找到一个类
- 获取项目的 OSGi 状态
- 删除列入黑名单的 API 使用
- 并为您的 .WAR 和 .EAR 档案生成相同的报告
您可以使用以下插件之一: UCDetector或Classpath Helper
我知道这是一个旧的,但如果其他人偶然发现这一点,Eclipse 会自行完成。
导航到 Project properties->Java Code Style->Clean Up 选择 Eclipse [Built-in],它会执行以下操作:
- 使用声明类型更改对静态成员的非静态访问
- 将对静态成员的间接访问更改为直接访问(通过子类型访问)
- 删除未使用的导入
- 添加缺少的“@Override”注释
- 向接口方法的实现添加缺少的“@Override”注释
- 添加缺少的“@Deprecated”注释
- 删除不必要的演员表
- 删除不必要的“$NON-NLS$”标签
在 Maven 和 Gradle 项目中,您可以使用这些插件来识别未使用的依赖项。
- 对于 Maven:链接
在 pom.xml 文件插件中使用它。
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
</plugin>
</plugins>
</build>
这将作为输出。在这种情况下,我们将 commons-collections 依赖添加到 pom.xml,但不要在代码中使用。
- 对于 Gradle:链接
在 build.gradle 文件插件中使用它。
plugins {
id "ca.cutterslade.analyze" version "1.7.1"
}
使用旧版插件应用程序:
这将作为输出。在这种情况下,我们将依赖项未使用DeclaredArtifacts 添加到 gradlefile,但不要在代码中使用。