问题标签 [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 投票
3 回答
5086 浏览

findbugs - 易于在 (Java) 静态代码分析工具中编写自定义规则

目前我正在为一个必须通过静态代码分析工具分析多个项目的源代码(Java)的小组工作

但我想编写自定义规则,可以添加到工具提供的现有规则集(这些规则主要涉及与源代码中的文本/字符串匹配的正则表达式)。

特别是保持我应该能够轻松编写/添加我自己的自定义规则的观点,这些规则可以与工具的现有规则列表一起使用。

谁能建议我应该使用以下给定列表中的哪个工具(或工具组合)?

  1. PMD
  2. 格纹风格
  3. 查找错误

编辑:感谢Ira的指导。我正在寻找与 Sonar 一起使用的静态代码分析工具。我希望现在问题很清楚了。

0 投票
2 回答
33126 浏览

java - PMD 规则集文件

我试图弄清楚默认规则集文件在哪里,默认规则集文件的名称以及我们如何向其中添加我们自己的规则。我试图谷歌,但这只是让我感到困惑。到目前为止,我已将 pmd 插件放在 eclipse 插件文件夹中,并且在首选项中我可以看到 PMD。

0 投票
4 回答
23855 浏览

java - PMD/CPD: Ignore bits of code using comments

Is there a way to tell PMD to ignore checking parts of code for duplication?

For example, can I do something like this:

Currently I have PMD set up like this using Maven, but don't see any arguments that would like me do what I want unless I am missing something.

0 投票
1 回答
804 浏览

stringbuilder - Findbugs 或 PMD 规则来检测何时应将 StringBuffer 替换为 StringBuilder

FindBugs 或 PMD 中是否有规则会在同步的 StringBuffer 可以安全地替换为 StringBuilder 时发出警告?

例如,当 StringBuffer 变量引用永远不会从方法中逃逸(到另一个线程)时,可以用 StringBuilder 安全地替换它。

0 投票
1 回答
4916 浏览

java - 在 IntelliJ IDEA 中使用 PMD 的问题

我试图将 PMD 插件安装到我的 IntelliJ IDE。我已按照说明进行操作,但在尝试运行 pmd 检查时出现以下异常。从它看起来的“。” 被解析为 / ,它为类加载器生成错误的文件名。

意思是路径:即使设置是

由于某种原因,它仍在寻找 C:/Development/IDE/Utils/PMDPlugin/lib/pmd-4/2/5/jar

这是一个例外:

我正在使用 Intelli IDEA 10.0.3 Build #IC 103.288 构建于 2011 年 4 月 JDK 1.6.0_21

你有什么建议吗??谢谢

0 投票
1 回答
676 浏览

eclipse-plugin - 导出安装的eclipse插件

我想知道是否可以使用我正确的首选项配置导出已安装的 eclipse 插件。

事实上,我已经为 pmd 插件开发了一个片段项目,并通过配置 pmd 首选项将它与已安装的插件链接起来。现在我想将它导出为一个新的 eclipse 插件实例。

谢谢你的帮助 ;)

0 投票
1 回答
453 浏览

android - 为 android maven2 项目配置 PMD-Plugin 的 Hudson

我目前在 maven2-android 项目上使用 Hudson 的 PMD 插件时遇到了问题。我的 POM 中的部分如下所示:

不幸的是,我找不到任何关于 android-ruleset 的位置。有人知道地址吗?

0 投票
2 回答
5951 浏览

java - Joshua Bloch 的 Builder 模式和 PMD 警告

我使用 Joshua Bloch 的 Builder 模式编写了一个类,类似于这个 Pizza 示例:

但 PMD 报告了 2 个警告:

  1. (指向方法 Builder.build())避免通过构造函数类外部的私有构造函数进行实例化。通过构造函数类外部的私有构造函数进行实例化通常会导致生成访问器。工厂方法或构造函数的非私有化可以消除这种情况。生成的类文件实际上是一个接口。它使访问类能够调用一个新的隐藏包范围构造函数,该构造函数将接口作为补充参数。这将私有构造函数有效地转换为具有包范围的构造函数,并且难以辨别。
  2. 类不能被实例化并且不提供任何静态方法或字段。不能使用具有私有构造函数且没有任何静态方法或字段的类。

我应该忽略这些警告吗?

Pizza另一个问题:类中的私有字段Builder是重复的。当私有字段的数量变大时,这会很烦人。有什么办法可以避免吗?

0 投票
3 回答
1284 浏览

grails - PMD 与 grails 项目

PMD 是否适用于 grails 项目,即适用于 .groovy 文件?

我正在使用 STS 编辑器,

如果它有效,我必须做什么设置?

请让我知道,如果有人有任何想法

提前致谢

0 投票
3 回答
1839 浏览

java - Wicket 和“构造函数调用可覆盖方法”PMD 警告

我们通过将大部分构造函数代码移动到onInitialize(). 但是我们只是将问题(设计缺陷?)转移到不同的地方吗?

即我们onInitialize()只是一个代理构造函数,PMD 没有注意到吗?

当您在构造函数中调用可覆盖的方法时,我们遇到了那种弹出的问题,但这似乎源于 Wicket 本身调用一个(找不到确切的源代码行,但是onInitialize(),一个可覆盖的方法,最终当你调用add()构造函数时被调用)。

如果有帮助,很高兴提供示例代码。

您会认为这很好,但调用onInitialize不会发生在您认为会发生的地方:

在页面上调用add()时,方法流程是:

因此,您可以看到是否将组件添加到WebPage方法onInitialize()被触发,这是一个可覆盖的方法,导致上述看起来理智的代码实例创建NullPointerExceptions.

您得到的唯一警告可能会发生这种情况是 JavaDoc 的onInitialize()

注意:此调用的时间不准确,约定是在 {@link Component#onBeforeRender()} 之前的某个时间调用它。