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

java - 这些 PMD 规则的原因是什么?

DataflowAnomalyAnalysis:发现变量“变量”的“DD”异常(行“n1”-“n2”)。

DataflowAnomalyAnalysis:发现变量“变量”的“DU”异常(行“n1”-“n2”)。

DD 和 DU 听起来很熟悉……我想说的是与最弱的前后条件相关的测试和分析,但我不记得具体内容了。

NullAssignment:将 Object 分配给 null 是一种代码味道。考虑重构。

如果对象是本地对象(不在方法之外使用),是否不会设置对象来null协助垃圾收集?或者这是一个神话?

MethodArgumentCouldBeFinal:未分配参数“param”,可以声明为 final

LocalVariableCouldBeFinal:局部变量“变量”可以声明为最终变量

使用final参数和变量有什​​么好处吗?

LooseCoupling:避免使用“LinkedList”等实现类型;改用界面

如果我知道我特别需要一个LinkedList,为什么我不使用一个来向未来的开发人员明确表达我的意图?返回有意义的类路径中最高的类是一回事,但是为什么我不将变量声明为最严格的呢?

AvoidSynchronizedAtMethodLevel:使用块级而不是方法级同步

块级同步比方法级同步有什么优势?

AvoidUsingShortType:不要使用短类型

我的第一门语言是 C 和 C++,但在 Java 世界中,我为什么不使用最能描述我的数据的类型呢?

0 投票
1 回答
491 浏览

command-prompt - 结果将存储在哪里?执行 PMD 后

我正在使用 PMD 为我的应用程序进行代码审查。我可以进行审查,但我不知道报告将存储在哪里。我正在使用这个 cmd:

在命令提示符中。

它在命令窗口中显示整个结果。

有没有办法将结果存储为 HTML 文件或任何其他文件类型?如果是这样,它将存储在哪里?我们需要配置什么吗?

0 投票
5 回答
1468 浏览

java - 项目之间的 CPD / PMD?

希望我重新表述这个问题,使其更简单易懂。

我有大约 30 个组件(内部)进入一个 Web 应用程序。这意味着 30 个不同的项目都有自己独立的 POM。我在我的 POM 中使用了相当多的继承,因此它们继承的其中一件事是 PMD/CPD 配置以防止代码重复。

即使我运行了 CPD/PMD,它也只能检测到同一项目中的重复代码。我希望它能够在我的任何项目中检测到项目之间是否存在可以重构的共享代码。此外,我一直在寻找可以(使用相同的概念/模式)验证其他开源依赖项之间没有共享代码的东西。

它将是 CPD/PMD,但它会在源 jar 上运行。如果您扫描所有项目及其依赖项以查找重复项,此任务将消耗大量内存。现在,我只想将其应用于内部项目。如果它有效,那么扩展它会相对容易/直接。

沃尔特

0 投票
2 回答
910 浏览

java - 松散耦合:我们可以在需要可克隆参数时使用接口吗?

正如PMD建议的那样,我想通过使用接口而不是实现来减少合作......

在这种情况下,知道我需要一个可克隆参数,我可以克服克隆困境(接口中没有clone()方法Cloneable)吗?

0 投票
1 回答
1761 浏览

java - 我可以自定义我的 Eclipse 的 PMD 吗?

我们知道 PMD 是与 eclipse 集成的。我想定制它。假设我希望所有变量都以小写字母开头,或者说我希望所有方法名称都超过 8 个字符等等。可以这样做吗?

有人知道 PMD 代表什么吗?

0 投票
2 回答
1457 浏览

maven-2 - 如何使 maven-pmd-plugin 支持最新的 PMD 版本?

http://maven.apache.org/plugins/maven-pmd-plugin/目前是 2.4 版,它支持 PMD 4.2.2 版

是否可以通过此插件使用 PMD 4.2.5 版,如果可以,我们该怎么做?

0 投票
4 回答
255641 浏览

regex - 正则表达式匹配字符串不是以我的开头

对于 PMD,我想要一个规则来警告我那些以 . 开头的丑陋变量my
这意味着我必须接受所有以 .开头的变量my

所以,我需要一个 RegEx (re),它的行为如下:

我尝试了不同的方法,但还没有工作。

0 投票
1 回答
1196 浏览

java - 自定义 PMD 规则 - 检查包注释到位

我正在尝试编写一个规则来强制一个包包含带有特定表达式的 Javadoc 注释,例如:

有谁知道我将如何使用AbstractJavaRule类编写这样的规则。我看过 ASTPackageDeclaration,但这似乎没有我想要的。

提前谢谢了...

0 投票
4 回答
8942 浏览

pmd - PMD 规则背后的“原因”

是否有很好的资源来描述 PMD 规则集背后的“原因”?PMD 的网站有“什么”——每条规则的作用——但它没有描述为什么 PMD 有这条规则以及为什么忽略这条规则会给你在现实世界中带来麻烦。特别是,我很想知道为什么 PMD 有 AvoidInstantiatingObjectsInLoops 和 OnlyOneReturn 规则(如果您需要创建一个与集合中的每个对象对应的新对象,第一个似乎是必要的,第二个似乎在许多情况下是必要的根据某些标准返回一个值),但我真正想要的是一个链接,描述了大多数 PMD 规则背后的“为什么”,因为这经常出现。

为了清楚起见,我知道我可以禁用这些以及如何做到这一点,我只是想知道为什么它们首先存在。抱歉,如果我错过了一些明显的东西,但在发布之前我做了谷歌搜索和 SO 搜索。我也明白这些问题通常是“品味”问题——我正在寻找的是规则的论据是什么以及有什么替代方案。举一个具体的例子,你应该如何在不实例化循环中的每个对象的情况下实现一个与循环中的每个对象对应的对象(这是 Java 中的常见操作)?

0 投票
6 回答
87757 浏览

java - 记录器与 System.out.println

我正在为 Eclipse 使用 PMD 插件,使用System.out.println()说明时它给了我一个错误:

使用 System.(out|err).print,考虑使用记录器。

我的问题是 - 什么是记录器?它是如何打印到屏幕上的?为什么更好?