【发布时间】:2010-09-19 21:36:52
【问题描述】:
是否有任何插件/工具可用于通过 Eclipse 项目(或工作区)的类路径并突出显示任何未使用的 jar?
【问题讨论】:
是否有任何插件/工具可用于通过 Eclipse 项目(或工作区)的类路径并突出显示任何未使用的 jar?
【问题讨论】:
ClassPathHelper 是一个好的开始。
它会自动识别孤儿罐等等。
唯一的限制是未在类中定义的依赖项,例如在依赖注入框架配置文件中。
您还有其他选择/补充,例如:
【讨论】:
您可以使用以下插件之一: UCDetector 或 Classpath Helper
【讨论】:
UCDetector 对此没有帮助:它不适用于 JAR。 对于 classpathHelper,我无法找到一种简单的方法来列出孤儿 JAR(顺便说一句,如果有人有这方面的教程,我很感兴趣)。
所以,如果你也像我一样使用 Maven,我发现 this great Maven plugin,我想与你分享这个解决方案。 只需输入:
mvn dependency:analyze
您将立即获得依赖项中未使用的 JAR 列表。 很方便!
【讨论】:
mvn dependency:analyze 的提示。它以一种非常简单的方式完成这项工作。在我看来,这比使用提到的其他工具之一要简单得多。
mvn dependency:analyze 可能会给出错误否定:例如,如果依赖类通过Class.newInstance() 或Constructor.newInstance() 实例化并通过接口进行操作,则它无法发现依赖关系。这是使用像 Spring 这样的依赖注入框架的项目中的常见场景。不过,这是一个很好的起点。
我知道这是一个旧的,但如果其他人偶然发现了这个,Eclipse 会自行完成。
导航到项目属性->Java 代码样式->清理 选择 Eclipse [Built-in] 并执行以下操作:
【讨论】:
我找到了一个非常快速有趣的工具来归档这个目标:
只需解压程序并运行:
java -Xmx512m -jar tattletale.jar ~/myjavaproject/mydistribution output
这将生成一个非常令人印象深刻的报告,其中包含不同的点(来自他们网站的文本):
【讨论】:
.jars 上调用,而不是在.java 文件上调用。
在 Maven 和 Gradle 项目中,您可以使用这些插件来识别未使用的依赖项。
在 pom.xml 文件插件中使用它。
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
</plugin>
</plugins>
</build>
这将作为输出。在这种情况下,我们将 commons-collections 依赖添加到 pom.xml,但不要在代码中使用。
在 build.gradle 文件插件中使用它。
plugins {
id "ca.cutterslade.analyze" version "1.7.1"
}
使用旧版插件应用程序:
这将作为输出。在这种情况下,我们将依赖项未使用DeclaredArtifacts 添加到 gradlefile,但不要在代码中使用。
【讨论】: