问题标签 [pmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18334 浏览

eclipse - 不支持 @SuppressWarnings("PMD.DoNotCallSystemExit")

我需要System.exit(0)在应用程序中使用。Eclipse 安装了 PMD 插件并抱怨这行代码。添加@SuppressWarnings ("PMD.DoNotCallSystemExit")删除该警告,但现在我收到一个警告,表明这SuppressWarnings是不受支持的,尽管它确实有效。

有没有办法解决这个问题?

0 投票
1 回答
13830 浏览

pmd - PMD - NPath 复杂性非常高,三元运算符 (?

我正在使用 PMD 为项目生成一些代码质量报告。
我不明白 NPath 复杂性检查的结果。
我创建了一个无聊的类来展示结果(这不是真正的类,但它使用相同的模式):

PMD 结果:

方法 usefullMethod() 的 NPath 复杂度为 10625

如果我添加一个以相同方式初始化的新变量,我会得到:

方法 usefullMethod() 的 NPath 复杂度为 103125

如果我全部更换?使用 if-else 结构,我得到了这个:

方法 usefullMethod() 的 NPath 复杂度为 1056

为什么我用三元“?”得到这么高的结果?操作员?

这段代码有什么问题?(在此演示代码中,很容易提取一种获取默认值的方法,但在实际代码中可能无法实现)

0 投票
1 回答
667 浏览

c - PMD:分析 C 代码的命令行

我想使用PMD 4.2.5在我的 C 代码中查找重复项。我使用他们文档中的示例命令行:

这给了我错误:

我也尝试了很多不同的其他东西,但都没有奏效。PMD 的 GUI 版本运行良好。

我必须使用什么命令行来让 PMD 检测重复代码?

0 投票
2 回答
906 浏览

junit - 为 JUnit 测试激活哪些 PMD 规则?

我正在将PMD设置为我们团队中的一个工具,以支持我们编写更好的代码。基本上我正在构建Ant 脚本并尝试设置一些规则供大家使用。

但是现在我遇到了这个问题:

当我编写JUnit 测试时 ,我不想使用我在主要源代码上应用的相同规则。我不太关心junit 测试中的字符串规则(如字符串重复或奇怪的实例化)。

我的问题是:

  1. 这是我的错吗?我应该开始编写更好的 JUnit 测试吗?
  2. 我是否应该提供第二组规则来禁用某些字符串/设计/终结器规则?
0 投票
2 回答
184 浏览

java - java - 如何在java中为条件语句检查大括号的逻辑?

我正在练习 PMD 插件,我想在 java 中编写一个规则来检查 if、while 和 for 循环的大括号。任何想法?提前致谢。

0 投票
8 回答
74120 浏览

sonarqube - SonarQube 是 Checkstyle、PMD、FindBugs 的替代品吗?

我们正在从头开始开发一个 Web 项目,并正在研究以下静态代码分析工具。

  • 约定(Checkstyle)
  • 不良做法 (PMD)
  • 潜在错误 (FindBugs)

该项目建立在 Maven 之上。我没有为此目的使用多种工具,而是在寻找一个灵活的解决方案并遇到了 SonarQube。

我们真的可以使用 SonarQube 实现 Checkstyle、PMD 和 Findbugs 的结果吗?

0 投票
1 回答
6501 浏览

pmd - PMD 中哪个优先级最高?

也许只有我一个人,但我找不到PMD中最高优先级的信息:1还是5

由于http://pmd.sourceforge.net/running.html和命令行参数的提及,-minimumpriority我认为5是最高值,1是最低值。我对吗?

0 投票
1 回答
362 浏览

java - PMD 报告超过 X 次违规

如果我违反特定规则的次数超过 3000 次,是否有办法让 pmd 报告失败。我希望 CyclomaticComplexity 低于 1000 次违规,而 ExcessivePublicCount 低于 2000。我知道有一种方法可以获得违规次数,但我不想要总数,因为如果我将 CC 的数量减少到 800,并增加EPC 的数量增加到 2200,它会看起来好像没有发生任何变化。如果不创建 2 个规则集,每个文件一个,然后使用不同的 pmd 目标运行,有没有更好的方法来做到这一点。

有没有办法 pmd 可以给我每种类型的违规次数(IE:500 - CC 和 200 - EPC),而不仅仅是所有违规的列表?谢谢。

0 投票
1 回答
277 浏览

static-analysis - 用于基准测试的 PMD 规则测试类源

是否有可以测试 PMD 规则的测试类?基本上我想再次对其他工具进行基准测试 PMD 的基本规则集。就像 PMd 必须针对一些测试代码测试它的规则..

我通过 PMD 源代码进行挖掘,但无法弄清楚这些类在哪里。

0 投票
1 回答
4438 浏览

java - 当代码具有注释和泛型时,maven 3 + pmd 失败

当我运行时,mvn pmd:pmd我收到来自 PMD 的警告/错误,说代码不能在 java 1.4 或 1.5 中使用泛型、注释或枚举。当未设置 targetJdk 属性(我确实设置了)时,这应该是一个错误。

这是我得到的错误示例

[警告] 解析 /Users/augusto/Downloads/PMD-Clover2-Cobertura-Maven2-Test/PMDTest/src/main/java/org/xh/studies/quality/App.java 时出错:除非运行,否则无法使用泛型在 JDK 1.5 模式下!

这是我正在使用的 pom 的片段(下面有整个应用程序的链接)

我在 mac 上使用 Maven 3.0.2,最新的 java 补丁 1.6.0_24。

单击此处下载完整项目 (8kb)