`
rensanning
  • 浏览: 3509832 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37407
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:603972
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:677512
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:86989
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:399568
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:68983
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:90294
社区版块
存档分类
最新评论

Java检测无用代码之UCDetector

    博客分类:
  • Java
 
阅读更多
如果你的项目代码量很大,或者维护了好多年,就必然会存在很多无用代码,维护这些代码会带来很大的成本开支,有时候需要清理这些无用代码,可以通过代码覆盖率工具来检测,但是这样也会很费事。UCDetector : Unnecessary Code Detector,一个检测无用的public代码(类、方法,属性等)的eclipse插件。

http://www.ucdetector.org/

Eclipse update site:
http://ucdetector.sourceforge.net/update

(1)eclipse已经提示了一些无用代码
编译器提示:
Preferences > Java > Compiler > Errors/Warning :Unnecessary code
  • Value of local variable is not used
  • Value of parameter is not used(默认Ignore)
  • Unused type parameter(默认Ignore)
  • Unused import
  • Unused private member
  • Unnecessary 'else' statement(默认Ignore)
  • Unnecessary cast or 'instanceof' operation(默认Ignore)
  • Unnecessary declaration of thrown exception(默认Ignore)
  • Unused 'break' or 'continue' label
  • Redundant super interface(默认Ignore)

代码辅助提示:
Preferences > Java > Code Style > Clean Up  :Unnecessary Code
  • Unused code
  •   Remove unused imports
  •   Remove unused private memebers(默认未选中)
  •   Remove unused local variables(默认未选中)
  • Unnecessary Code
  •   Remove unnecessary casts
  •   Remove unnecessary '$NON-NLS$' tags


看开源代码的时候经常会看到类似//$NON-NLS-1$、//$NON-NLS-2$......//$NON-NLS-n$等这样的注释。意思当前行的第n个字符串不需要外置做国际化,其中NLS代表"National Language Support"。eclipse有一个resources creator tool,能够将代码中的字符串,自动提取到.properties中去。在java代码中点击右键,Source > Externalize Strings。

(2)使用UCDetector
使用方法很简单,无论是整个项目,或者某个Java文件都可以右键选择“UCDetector/detect unnecessary code”来检测,检测后的结果显示在Problems视图里(选Group By Type)。








工具再智能也只是帮助你检测出来那些没有被引用的代码,但是是否真的这些代码无用,还需要按照实际情况确认。比如,虽然没有直接调用的但却只用于反射的、类似于Spring的外部依赖注入的、提供给第三方的API、其他Jar中调用的,.....等等。

如果想让UCDetector忽略某写代码的无用提示的话,可以在行尾添加// NO_UCD,或者使用@SuppressWarnings("ucd")。
  • 大小: 6.6 KB
  • 大小: 20.8 KB
  • 大小: 13.1 KB
  • 大小: 15.1 KB
分享到:
评论
2 楼 武林第一帅哥 2014-11-18  
不知道他们判断无用代码的依据是什么
1 楼 jackyrong 2014-03-22  
不知道sonarqube有没有这样的功能

相关推荐

    ucdetector无用代码检测工具

    ucdetector无用代码检测工具.rar 是一个小巧的eclipse插件,检测未被调用的方法或属性字段,有相关文档说明

    iOSAPP分析无用代码

    iOS APP分析无用代码(A source-code level/Clang Approach)

    查找Xcode无用代码

    查找Xcode无用代码

    ucdetector

    这是一个Eclipse的插件,用来检测Java中的无用代码

    UCDetector1.9.0插件和原码

    无用代码查找工具,UCDetector插件和原码。

    让那些无用代码注释见鬼去

    摘要——注释简单代码会干扰对重要注释的理解。程序开发者最好能用最精要的注释来解释重点代码。 举个例子,你打开一个电箱,里面有几百根电线,蒙了吧。再一看,每根电线上面都有一个整洁的小标签。真是谢天谢地啊...

    java项目作业无用

    java项目作业无用资源描述可以把电子书的概述、源代码的说明、文档的片段填在这里,描述详细会获得我们的推荐,更容易被他人下载!描述大于20字不是问题吧!

    org.ucdetector_1.10.0

    ucdetector eclipse 代码优化插件最新版,帮助查找工程中的无用代码,用于整理臃肿的工程代码。使用教程:https://blog.csdn.net/pang9998/article/details/87890904

    as3代码混淆,生成无用代码。

    可以生成一个包含无用代码的swc文件,你只要在自己的项目中包含这个swc,然后再实例化其主类就可以。使用之前先把flexsdk的bin目录路径加入系统路径,并设置SetupSDK.bat中的sdk路径。xRandomSWC.bat中可以设置主类...

    iOS之自动检测项目中的无用的图片资源

    iOS之自动检测项目中的无用的图片资源iOS之自动检测项目中的无用的图片资源

    petulant-octo-adventure:Java 中一个无用的实用程序代码库

    Java 中一个无用的实用程序代码库。 这是一个无人维护的项目,它曾经是很多 Java 实用程序代码。 它是在(并非如此)古老的时代编写的,当时 Java 1.5 仍然是非常新潮的东西。 该项目中包含的许多(或所有)内容...

    检测项目中无用的图片

    一个MAC项目demo检测app应用里面没有用到的图片

    JAVA代码生成工具

    enumClassName="如果枚举有值,生成的类名称将是这个,没有枚举值,该配置无用.示例值:Sex" /> 数据库表名> --> 用户信息" > 用户名" javaType="String" unique="false" nullable="true" pk="false" ...

    java代码规范

    代码规范比比皆是,但是很少有公司做好代码规范的。忍不住想谈谈代码规范的重要性,希望所有人都能够重视起来。而且,我相信,如果我们代码规范能够做好的话,且不说开发水平提高多少,至少我们也会有很多出色开源...

    Java源码大全

    自己整理的一些Java代码,对初学者很实用,非初学者也可以作为参考,内容对应各部分知识,其中还包括经典算法的打包。

    Java无用单元回收方式与性能分析.pdf

    Java无用单元回收方式与性能分析

    java项目中去掉多余的jar包(三个Eclipse插件),有操作图示

    三个Eclipse插件可以去掉多余的java项目中jar包,有操作图示。

    Java 无用对象回收PPT教案学习.pptx

    Java 无用对象回收PPT教案学习.pptx

    ProGuard-java混淆加密

    ProGuard能够对Java类中的代码进行压缩(Shrink),优化(Optimize),混淆(Obfuscate),预检(Preveirfy)。  1. 压缩(Shrink):在压缩处理这一步中,用于检测和删除没有使用的类,字段,方法和属性。  2. 优化...

    helium-检测网页中无用的css

    helium-检测网页中无用的css

Global site tag (gtag.js) - Google Analytics