我正在寻找一款能够识别重复/冗余Javascript代码的软件。我找到了一个名为CloneDR的工具,但不知道它有多好。我一直在寻找类似的开源工具。请指导。 最佳答案 我用了PMD'sCopy/PasteDetector(CPD)去年在一个项目上。有一些代码EcmascriptLanguage支持,但我记得必须更新GUI.java并重新编译该项目以使其正常工作。 关于javascript-重复代码检测:Toolsyoucanuse,我们在StackOverflow上找到一个类似的问题:
我正在编写一个实用程序来检查AtlassianStash修改文件的拉取请求-目标是通过Checkstyle(或Findbugs或PMD)运行每个Java文件,然后让插件对每一行有问题的行进行评论。为此,插件必须通过Checkstyle(或其他代码风格实现实用程序)运行请求中每个修改Java文件的内容。AtlassianStashAPI使得获取修改文件的内容变得非常容易,但似乎不可能以编程方式通过Checkstyle运行这些内容——唯一的方法是在磁盘上保存一个临时文件并运行Checkstyle通过调用Runtime.getRuntime().exec(...)命令来对抗它。是否有任何可以
在我最近的项目中,我遇到了可以完美编译的代码,但是对于任何读者来说都是非常令人惊讶的,不应该通过静态分析。classBracketsAfterMethodSignature{ObjectemptyArray()[]{returnnewObject[]{};}}我们使用Checkstyle、PMD、ErrorProne和SonarLint,但这些工具都不会提示这种结构。是否有任何可启用的规则或可用于防止此类代码的工具?显然是Checkstyle的ArrayTypeStyle不包括这种情况。编辑我正在对扩展名为.groovy的文件运行静态分析,SonarLint说这段代码没问题。将扩展名更
假设我的库中有两种方法:voidcom.somepackage.SomeClass.someSink(Strings)和intcom.someotherpackage.SomeOtherClass.someSource(inti)在我的代码中,第一种方法用作数据接收器,而第二种方法用作数据源。类型参数int、String只是举例,实际情况可能会有所变化。我想在满足下面给出的特定模式的某些代码中检测这些方法的用法:一些数据(比如x)是由源生成的一些数据(例如y)是使用一系列转换生成的f1(f2(...fn(x))y被提供给接收器。转换可以是任意函数,只要从为接收器生成数据的函数到从源接收
在Maven中是否可以使用某些东西来自动执行这种检查?我看到了checkstyle和PMD,但没有找到此功能。基本上,如果有类A而没有ATestCase,我希望构建失败。我知道,这不是一个严格的检查,可以通过只创建类轻松绕过,但目前这就足够了。 最佳答案 你在找什么正如JensPiegsa指出的那样,您正在寻找的是一种可以显示测试覆盖率的工具,换句话说,就是您测试使用的代码百分比。它允许您以比(至少按类测试)更可靠的方式查看您的代码测试了多少。您可以使用Cobertura,它很好地集成在Maven中:http://mojo.code
我正在处理的Java项目结合使用了代码分析工具:PMD、Checkstyle和FindBugs。这些发现了大量错误、样式问题等,但经常有一个漏网之鱼:publicclassAbstractBadlyNamedClass{//Notabstract!//...}注意相反的方式被检查,即publicabstractBadlyNamedClass给出PMD警告“抽象类应命名为AbstractXXX”。任何人都可以建议是否有一种方法可以检查这一点,可以使用上述工具之一(可能是某种自定义规则?)或其他可以完成这项工作的自动化工具? 最佳答案
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereanyperformancereasontodeclaremethodparametersfinalinJava?Whywouldonemarklocalvariablesandmethodparametersas“final”inJava?我正在使用PMD查看代码违规情况。在webService方法中,我有下面的代码publicServiceRequestgetData(){Statusstatus=newStatus();//code}PMD给我的建议是,这个局部变量状态可以声明为final
这部分代码在sonar中被pmd拒绝了:publicStringgetFoo(){Stringfoo=System.getProperty("foo");if(foo==null){foo=System.getenv("foo");}elseif(foo==null){foo="defaultFoo";}returnfoo;}它说“避免在If条件下使用文字”。谁能告诉我这有什么问题或这条规则试图产生什么影响? 最佳答案 为什么不使用:publicStringgetFoo(){Stringfoo=System.getProperty(
我在我的Java项目中使用PMD进行代码审查。只想知道“P.M.D.”这个首字母缩写词是什么代表。我在谷歌上搜索但找不到任何东西。有人知道吗? 最佳答案 OnthePMDprojectsite你会发现他们并不真正了解PMD字母的含义。他们只是觉得这些字母放在一起听起来不错。你可以找到几个“backronyms”来解释它onthePMDprojectsite:差不多完成了项目困惑检测器项目监控指令项目如期完成编程错误检测器磅重的错误PMD意义发现(递归,万岁!)大规模杀伤性计划精心编写代码
以下使用==比较两个枚举值:MyEnumenum1=blah();//couldreturnnullMyEnumenum2=blahblah()//couldreturnnullif(enum1==enum2){//...}但是PMD给出了一个CompareObjectsWithEquals第3行警告:Useequals()tocompareobjectreferences不确定我是否理解sourcecodeforthischeck但认为使用==比较两个枚举是可以的,所以我想知道我的代码是否可以改进或者检查不正确。 最佳答案 这确实