Tag: pmd

自定义Java PMD规则:找不到CustomRule类

我正在尝试用Java编写自定义PMD规则。 我创建了一个自定义规则集,如下所示: My custom rules Custom description 3 我使用这个Java类调用pmd.bat : package mwe; import java.io.IOException; import java.io.InputStream; import java.util.Scanner; public class PmdStarter { public static void main(String[] args) { callPmd(); } public static void callPmd() { String pmdPath = “pmd-src-5.0.5/bin/pmd.bat”; String checkThisCode = “checkThisCode/”; String customRuleSet = “pmd-src-5.0.5/src/main/resources/rulesets/java/customRules.xml”; String[] command = { pmdPath, “-dir”, checkThisCode, “-rulesets”, […]

是否有任何Checkstyle / PMD / Findbugs规则强制“else if”在同一条线上?

在我们的链接if / else /的项目中,如果我们想要进行以下格式化: if (flag1) { // Do something 1 } else if (flag2) { // Do something 2 } else if (flag3) { // Do something 3 } 并禁止以下一个: if (flag1) { // Do something 1 } else { if (flag2) { // Do something 2 } else { if (flag3) { // […]

添加一个空字符串vs toString – 为什么它不好?

根据工具PMD,以下是一种不好的做法: String s = “” + 123; // bad String t = Integer.toString(456); // ok This is an inefficient way to convert any type to a `String`. 为什么这样做是件坏事?

从maven插件中的PMD中删除单个规则检查

我想在POM中排除单个PMD规则,但它不起作用。 我试过创建一个pmd-exclude.xml(与pom.xml在同一个目录中): Remove rules 来自http://www.ing.iac.es/~docs/external/java/pmd/howtomakearuleset.html并在pom.xml中引用它: org.apache.maven.plugins maven-pmd-plugin 3.0.1 utf-8 ${pom.basedir}/pmd-exclude.xml 但它一直在报告这些规则。 另外:我不想指定它必须检查哪些规则,因为较新版本可以(并且将)包含新规则,我不想检查每个新版本中将运行哪些新规则。

PMD规则集文件

我是PMD的新手。 我试图找出默认规则集文件的位置,默认规则集文件的名称以及我们如何向其添加自己的规则。 我试图谷歌,但这只是让我感到困惑。 到目前为止,我已将pmd插件放在eclipse插件文件夹中,在偏好中我可以看到PMD。 有人可以帮我这个吗? 谢谢,妮莎

非瞬态类成员上的Java PMD警告

在线: private boolean someFlag; 我得到以下PMD警告: 发现非瞬态,非静态成员。 请标记为瞬态或提供访问者。 有人可以解释为什么这个警告在那里,它意味着什么? (我理解如何修复它,我不明白为什么它在那里……) 我在许多其他成员声明中也得到了这个…… 编辑:我的类绝对不是一个bean,而不是可序列化的……

代码分析器:PMD和FindBugs

1.关于PMD: 1.1如何设置PMD检查,忽略其中的一些,如“变量名太短或太长”,“删除空构造函数等” – 如果我这样做,则会出现另一个警告,表明该类必须有一些静态的方法。 基本上,这个课程是空的,以便以后开发,我现在喜欢这样做。 1.2遵循此警告建议是否必要? A class which only has private constructors should be final 1.3那是什么意思? The class ‘Dog’ has a Cyclomatic Complexity of 3 (Highest = 17) 1.4这个怎么样? 我很乐意改变这一点,但目前没有任何关于改变的事情: Assigning an Object to null is a code smell. Consider refactoring. 2.关于FindBugs: 2.1写入静态字段是否真的那么糟糕,比它的声明要晚一些? 以下代码给了我一个警告: Main.appCalendar = Calendar.getInstance(); Main.appCalendar.setTimeInMillis(System.currentTimeMillis()); 其中appCalendar是一个静态变量。 2.2这段代码: strLine = objBRdr.readLine().trim(); 发出警告: […]

是否有C / C ++的Findbugs和/或PMD等价物?

我最近被问及Coverity Prevent的替代品,它包含了包含C / C ++和Java的代码库。 显然,在Java方面,可用的免费工具包括Findbugs(编译代码分析)和PMD(静态代码分析)。 它们非常强大,特别是当您开始研究与IDE的集成时(同样,它是免费的)。 但是,当您开始使用各种编译器,体系结构等进入C / C ++领域时,事情会很糟糕。 我已经为Java方面提出了各种工具,包括Findbugs和PMD。 当我考虑使用以下指标时,我正在寻找的是C / C ++方面的最佳选择: 价格:免费更好,但可以通过更好的价值打败。 但是,每行代码收费的定价模型令人恐惧。 function集:这个工具如何让我的生活更美好? 在我检查错误之前,在我们发送代码之前,它会以什么方式检测我的错误等? 可用性:我可以在办公桌上使用该工具吗? 我可以分享报告和/或调查结果吗? 我可以将该工具与Fogbugz(我们在我的小组中使用)集成吗? 我可以将该工具集成到CruiseControl(或同等产品)中吗? 终极工具将是Findbugs和PMD具有相同function集的组合,并且每个座位的零美元都是有用和可用的。

Maven PMD插件没有使用’mvn site’命令或’pmd:pmd’生成报告

我在这里阅读一个有趣的教程: http : //www.avajava.com/tutorials/lessons/how-do-i-generate-pmd-and-cpd-reports-for-a-site.html?page=1 本教程介绍如何使用Maven运行开源静态分析工具PMD,以及在Maven创建的网站上查看生成的输出。 Maven可以使用mvn site命令轻松创建网站,但本教程将介绍如何使用PMD获取有关源代码的更有用的指标。 我尽最大努力遵循指示。 这是我阅读教程时得到的pom.xml文件: 4.0.0 com.name.bookstore bookstore jar 1 bookstore http://maven.apache.org junit junit 3.8.1 test org.apache.maven.wagon wagon-webdav 1.0-beta-2 site.deployments Site deployments dav:localhost/${basedir} org.apache.maven.plugins maven-pmd-plugin 3.4 org.apache.maven.plugins maven-jxr-plugin 2.5 org.apache.maven.plugins maven-javadoc-plugin 2.10.1 当我运行命令: mvn clean site我得到了一个由Maven构建的网站,其中包含许多不同的页面,但没有一个显示有关PMD的任何内容。 我在这里想念的是什么? 为什么我在生成的网站上看不到有关PMD的任何信息? 此外,当我运行mvn pmd:pmd有一个成功的构建,但我没有获得任何有用的PMD指标。 我甚至在我的一个Java源文件中编写了一些未使用的变量和方法,如上面的链接教程所示,没有任何有用的输出。 mvn pmd:pmd命令似乎确实创建了一些文件。 一对夫妇是它看起来像引擎的规则文件,其他的是空的。 请看下面的屏幕截图: 图1 :pmd:pmd命令创建的文件 图2 :清空pmd文件 – 即使Java源文件中存在明显错误 […]

PMD规则“使用适当的类加载器”解释?

有以下PMD规则: 使用正确的类加载器(严重) 在J2EE中, getClassLoader()可能无法按预期工作。 请改用Thread.currentThread().getContextClassLoader() 。 可以在某种程度上解释他们的想法吗? 究竟什么意思是“J2EE”环境?