Java 查找eclipse项目中使用的未使用的JAR
是否有任何插件/工具可用于浏览eclipse项目(或工作区)的类路径并突出显示任何未使用的JAR?是一个良好的开端 它可以自动识别孤立的罐子等等 唯一的限制是类中未定义的依赖项,例如依赖项注入框架配置文件中的依赖项 您还有其他选择/补充,例如:Java 查找eclipse项目中使用的未使用的JAR,java,eclipse,jar,Java,Eclipse,Jar,是否有任何插件/工具可用于浏览eclipse项目(或工作区)的类路径并突出显示任何未使用的JAR?是一个良好的开端 它可以自动识别孤立的罐子等等 唯一的限制是类中未定义的依赖项,例如依赖项注入框架配置文件中的依赖项 您还有其他选择/补充,例如: ,它依赖于通过检查真实对象的形状、大小或在空间中的相对位置来处理真实对象的能力。它提供了java包、类型和字段及其关系的“物理”视图,使它们更易于处理 :一个eclipse插件工具,用于查找不必要的(死的)公共java代码 您可以使用以下插件之一: 或
- ,它依赖于通过检查真实对象的形状、大小或在空间中的相对位置来处理真实对象的能力。它提供了java包、类型和字段及其关系的“物理”视图,使它们更易于处理
- :一个eclipse插件工具,用于查找不必要的(死的)公共java代码
或者UCDetector对此没有帮助:它在JAR上不起作用。 对于classpathHelper,我无法找到一种简单的方法来列出孤立的罐子(顺便说一句,如果有人有这方面的教程,我很感兴趣) 所以,如果您也像我一样使用Maven,我会发现,我想与您分享这个解决方案。 仅键入:
mvn dependency:analyze
而且,您将立即得到依赖项中未使用的jar列表。
非常方便 我知道这是一个老问题,但如果其他人偶然发现了这一点,Eclipse会自己做这件事 导航到项目属性->Java代码样式->清理 选择Eclipse[内置],它将执行以下操作:
- 使用声明类型更改对静态成员的非静态访问
- 将对静态成员的间接访问更改为直接访问 (通过子类型访问)
- 删除未使用的导入
- 添加缺少的“@Override”批注
- 将缺少的“@Override”批注添加到接口的实现中 方法
- 添加缺少的“@Deprecated”批注
- 去除不必要的铸件
- 删除不必要的“$NON-NLS$”标记
java -Xmx512m -jar tattletale.jar ~/myjavaproject/mydistribution output
这将生成一份非常令人印象深刻的报告,其中包含不同的要点(来自其网站的文本):
- 确定JAR文件之间的依赖关系
- 从类路径中查找缺少的类
- 发现类/包是否位于多个JAR文件中
- 如果同一个JAR文件位于多个位置,则为Spot
- 包含每个JAR文件需要和提供的内容的列表
- 验证类的SerialVersionId
- 查找具有不同版本号的类似JAR文件
- 查找没有版本号的JAR文件
- 查找未使用的JAR归档文件
- 识别密封/签名的JAR档案
- 在JAR文件中查找类
- 获取项目的OSGi状态
- 删除黑名单API使用
- 并为.WAR和.EAR档案生成相同的报告
mvn dependency:analyze
可能会给出错误的否定:例如,如果依赖类是通过class.newInstance()或Constructor.newInstance()实例化的,则它无法发现依赖项
并通过界面进行操作。这是使用依赖项注入框架(如Spring)的项目中的常见场景。然而,这是一个很好的起点。这不是我想要的。我想找出项目中哪些罐子是不必要的。清理是一项不同(但仍然有用)的工作。干杯类似的问题和不同的答案@VonC提到的第一个链接似乎被移动了/broken@manocha_ak是的,关于工作青蛙的救济项目已经不复存在了。我已经恢复了该网站的web.archive.org链接。仍然无法获取该链接。你能单独或以其他方式把我送过来吗?@manocha_-ak我知道,但只保留了网页,没有保存档案。据我所知,那个项目已经结束了。谢谢。它似乎工作得很好。但是,它需要在编译的.jars
上调用,而不是在.java
文件上调用。