问题标签 [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.
java - Checkstyle 与 PMD
我们正在为我们的 Java 产品的构建系统中引入静态分析工具。我们使用的是 Maven2,所以Checkstyle和PMD集成是免费的。然而,在执行基本样式规则方面,这两个工具之间的功能似乎有很大的重叠。
使用这两者有什么好处吗?如果一个可以工作,我不想维护 2 个工具。如果我们选择一种,我们应该使用哪一种,为什么?
我们还计划使用 FindBugs。我们应该看看其他静态分析工具吗?
更新:共识似乎是 PMD 优于 CheckStyle。我看不出同时使用两者的充分理由,而且我不想维护两组规则文件,因此我们可能会专门针对 PMD。我们还将引入 FindBugs,也许最终还会引入 Macker 来执行架构规则。
java - 检测作为参数传递的对象的变化值
我现在正在使用看起来像这样的代码
我认为更改作为参数传递的对象是不好的做法。是否有检测这种代码的工具?我查看了 findbugs、pmd 和 checkstyle,但找不到任何检查。
PS对不起不好的例子。
java - 您知道将强制执行休眠最佳实践的 PMD 或 Checkstyle 规则吗?
例如,不通过字符串操作等来构建查询。
java - 非瞬态类成员的 Java PMD 警告
在线的:
我收到以下 PMD 警告:
找到非瞬态、非静态成员。请标记为瞬态或提供访问器。
有人可以解释为什么会出现此警告及其含义吗?(我知道如何解决它,我不明白它为什么在那里......)
我也在许多其他成员声明中得到了这个......
编辑:我的课程绝对不是 bean,也不是可序列化的......
java - PMD规则DataflowAnomalyAnalysis奇数
我有以下 JUnit 测试:
并且 PMD 给出了以下违规行为:
我文件中的第 36 行是定义方法的行:
我不明白这些违规行为在说什么。我应该在哪里定义这三个变量?为什么 AnnouncerThread 不在违规中?它的声明方式与我尝试重新排序声明无济于事的方式相同。
java - C/C++ 是否有 Findbugs 和/或 PMD 等价物?
我最近被问及Coverity Prevent的替代方案,用于包含 C/C++ 和 Java 的代码库。显然,在 Java 方面,可用的免费工具包括 Findbugs(编译代码分析)和 PMD(静态代码分析)。它们非常强大,尤其是当您开始研究与 IDE 的集成时(同样,它是免费的)。
但是,当您开始使用各种编译器、体系结构等进入 C/C++ 领域时,事情就变得很冒险了。
我已经为 Java 端提出了多种工具,包括 Findbugs 和 PMD。当考虑使用以下指标时,我正在寻找的是 C/C++ 方面的最佳选择:
- 价格:免费更好,但可以被更好的价值击败。但是,按代码行收费的定价模型令人恐惧。
- 功能集:这个工具如何让我的生活更美好?在我签入之前,在我们发布代码之前,它以什么方式检测我的错误?
- 可用性:我可以在办公桌上使用该工具吗?我可以分享报告和/或调查结果吗?我可以将该工具与 Fogbugz(我们在我的小组中使用)集成吗?我可以将该工具集成到 CruiseControl(或同等产品)中吗?
最终的工具将是像 Findbugs 和 PMD 的组合一样有用和可用的东西,具有相同的功能集,每个座位都是零美元。
pmd - 用于检查 html/jsp 文件的 PMD 规则
我想创建一个 PMD 规则来检查任何文件(txt、html、jsp 等)中的正则表达式。该规则不使用 Java 或 XPath 结构。
想法是读取文件并根据分析的行添加违规行为。我不知道如何使用规则方法来做到这一点......
任何想法?
谢谢,
安德烈
java - 代码分析器:PMD 和 FindBugs
1.关于PMD:
1.1 如何设置 PMD 检查,忽略其中的一些,例如“变量名称太短或太长”、“删除空构造函数等” - 如果我这样做,则会出现另一个警告,说明该类必须有一些静态方法。基本上,这个类是空的,以供以后开发,我现在喜欢这样。
1.2 是否有必要遵循此警告建议?
1.3 那应该是什么意思?
1.4 这个呢?我很想改变这一点,但目前我没有想到关于改变:
2.关于 FindBugs:
2.1 在声明之后的某个时刻写入静态字段真的有那么糟糕吗?以下代码给了我一个警告:
其中appCalendar
是一个静态变量。
2.2 此代码:
给出警告:
哪里objBRdr
是BufferedReader(FileReader)
。会发生什么?readLine()
可以为空吗?代码嵌套在while (objBRdr.ready())
测试中,到目前为止,我在那里的问题为零。
Update1:当我将代码替换为以下内容时,2.2 已修复:
java - PMD - 检查过多的公共方法(但不包括构造函数和 getter/setter)
我希望添加一个 PMD 检查以确保一个类没有太多公共方法,但我不希望将构造函数和 getter/setter 包含在检查中。
ExcessivePublicCount 检查包括构造函数、getter/setter 和公共变量,我看不到自定义它的方法。
TooManyMethods 检查不包括 getter/setter,但包括其他所有内容(包括私有方法)。检查的 XPath 代码如下。
任何人都可以帮助我修改它以实现我想要的,或者建议另一种方法来使用 PMD 做到这一点?
java - 简单的、普遍感兴趣的、基于代码分析器的 Java 问题
好的,在使用PMD和FindBugs代码分析器审查了一些代码之后,我能够对审查过的代码进行很大的更改。但是,有些事情我不知道如何解决。我将在下面重复它们,并且(为了更好地参考)我会给每个问题一个数字。随意回答任何/所有问题。谢谢你的耐心。
1. 即使我已经删除了一些规则,但重新评估代码后相关的警告仍然存在。知道为什么吗?
2.请看声明:
以及 getter 和 setter 对对象的引用:
现在,我想知道为什么第一个声明没有给我任何关于 PMD 的警告,而第二个声明却给了我以下警告:
有关该警告的更多详细信息,请点击此处。
3. 这是另一个警告,也是由 PMD 给出的:
有关该警告的更多详细信息,请点击此处。
现在,我同意这一点,但是如果我写这样的东西怎么办:
我倾向于同意这条规则,但如果代码的性能表明存在多个退出点,我该怎么办?
4. PMD 给了我这个:
当我声明类似:
如果我删除了对 null 的赋值,我会删除这个信息(警告级别是信息),但是..我从 IDE 收到一个错误,说变量可能在稍后的代码中未初始化。所以,我有点坚持。压制警告是你能做的最好的事情吗?
5. PMD警告:
这是 GUI 组件的单一使用的情况或返回复杂对象的方法的情况。在 catch() 部分中将结果分配给 null 是为了避免返回不完整/不一致的对象。是的,应该使用 NullObject,但在某些情况下我不想这样做。那我应该取消那个警告吗?
6. FindBugs 警告 #1:
在方法中
静态变量
该变量允许我测试表单是否已经创建并且是否可见,并且在某些情况下我需要强制重新创建表单。我在这里看不到其他选择。有什么见解吗?(MyClass 实现了 Listener,因此重写了 handleEvent() 方法)。
7. FindBugs 警告 #2:
此警告基于其他类的简单导入显示。我是否需要重构这些导入以使此警告消失?还是问题出在 MyClass2 中?
好的,现在说得够多了……期待更新,基于更多的发现和/或你的答案。谢谢。