问题标签 [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 - PMD 和 FindBugs 有什么区别?
有一个问题比较 PMD 和 CheckStyle。但是,我无法找到关于 PMD 和 FindBugs 之间差异/相似性的很好的细分。我相信一个关键的区别是 PMD 处理源代码,而 FindBugs 处理编译的字节码文件。但就能力而言,它应该是一个非此即彼的选择,还是它们相互补充?
java - 配置 Eclipse 插件 PMD 以使用多个规则集
我发现 PMD 非常有用的工具。所以我已经安装了 PMD eclipse 插件。
使用 PMD,我们可以定义多个规则集文件。我有多个规则集文件的原因之一是我需要从一些规则中排除一些类,比如命名规则,但不是全部。我通过在单独的规则集文件中定义这些规则并使用元素来实现这一点。就 ant build 而言,这很好。但是,我想为 PMD eclipse 插件使用相同的规则集文件,以确保使用 ant 或 eclipse 执行 PMD 生成相同的结果。
我没有看到为 PMD eclipse 插件选择多个规则集文件的选项。有没有办法选择多个规则集文件或任何其他替代方案?
请帮忙。
谢谢
java - 如何修复以下 PMD 违规
我正在使用 PMD 分析代码,它会产生一些我不知道如何修复的高优先级警告。
1)Avoid if(x!=y)..; else...;
但是如果我需要这个逻辑我该怎么办?也就是说,我确实需要检查是否x!=y
?我该如何重构它?
2)Use explicit scoping instead of the default package private level.
但该类确实只在包内使用。我应该使用什么访问修饰符?
3)Parameter is not assigned and could be declared final.
我应该在 PMD 指出的所有地方添加 final 关键字吗?
clearcase - 静态分析工具的使用 - 与 Clear Case/Quest
我们正在定义我们的软件开发过程,并希望从小组中获得一些关于这个主题的反馈。
我们的团队分布在美国、加拿大和印度,我想制定一些简单的标准规则,所有团队都将适用于他们的代码。
我们利用 Clear Case/Quest 和 RAD
我一直在研究 PMD、CPP、checkstyle 和 FindBugs 作为开始。
我的想法是将这些放入 ANT 并让开发人员手动运行它们。我意识到这样做你必须相信每个开发人员都会这样做。
另一个想法是将一些构建器添加到 IDE 中,这些构建器将运行规则的子集(保持构建过程轻量级),然后在签入代码时添加另一组(重度)。
其他一些理想是使用 Cruse Control 之类的东西,并设置它以在 Clear Case/Quest 空闲时运行这些静态分析工具以及单元测试。
想知道其他人是否已经这样做了,是否成功或可以提供经验教训。
java - 逐行迭代文本文件的内容 - 是否有最佳实践?(与 PMD 的 AssignmentInOperand 相比)
我们有一个 Java 应用程序,它有一些知道读取文本文件的模块。他们用这样的代码很简单地做到了:
我在我的项目上运行PMD并在线上遇到了“ AssignmentInOperand ”违规while (...)
。
除了显而易见的之外,还有更简单的方法来执行此循环:
这被认为是更好的做法吗?(尽管我们“复制”了line = br.readLine()
代码?)
java - How do I get the package of a local variable declaration in PMD and XPath?
My problem
I want to create a custom ruleset for PMD that finds all declared variables that use a specific package. And it should be a XPath ruleset, because that is easier to maintain for me.
What I have so far
I am able to find import
statements and variables. I'm using this XPath to find the declarations:
However, this is only matching the exact class, but I want to check if this class comes from package my.package
and I don't know how to get that.
Any hints?
maven-2 - 在本地解析 Maven 中的 pmd 规则集
我尝试执行以下操作:
- 我为我的所有 Maven2 项目定义了一个标准 POM。
- 该 POM 包括要使用的工具,以及 PMD 要使用的规则集。
- 我已经定义了一个属性来命名这些规则集。
知道这是有效的。我可以定义一个新项目 POM,将其用作我的标准 POM 的父级,并使用其中定义的规则集。我什至能够覆盖用另一个名称定义规则集的属性的定义。
我已将其定义为auth-pmd-rule-set-3.x-v1-5.xml
代替pmd-rule-set-3.x-v1-5.xml
(然后由 Maven2 选择),并将该文件auth-pmd-rule-set-3.x-v1-5.xml
本地包含在我的新项目中(在 下src/main/resources
)。但是 Maven 没有找到它。错误消息如下所示:
[调试] 准备规则集:auth-pmd-rule-set-3.x-v1-5.xml
[调试] 之前:auth-pmd-rule-set-3.x-v1-5.xml 之后:auth-pmd-rule-set-3.x-v1-5.xml
[调试] 在 resourceLoader org.codehaus.plexus.resource.load.FileResourceLoader 中找不到资源“auth-pmd-rule-set-3.x-v1-5.xml”。
[调试] 在 resourceLoader org.codehaus.plexus.resource.loa der.JarResourceLoader 中找不到资源“auth-pmd-rule-set-3.x-v1-5.xml”。
[调试] 在 resourceLoader org.codehaus.plexus.resource.load.ThreadContextClasspathResourceLoader 中找不到资源“auth-pmd-rule-set-3.x-v1-5.xml”。
[DEBUG] URLResourceLoader:在“java.net.MalformedURLException”中查找“auth-pmd-rule-set-3.x-v1-5.xml”时出现异常:无协议:auth-pmd-rule-set-3。 x-v1-5.xml
有什么技术可以达到我想要的吗?我想重新定义 PMD 应该使用的规则集,而不重复所有内容的整个定义。
java - 从 Shell 一次运行多个规则的 PMD 命令
我正在一些 Java 源代码上尝试 PMD。我从 Mac(Unix shell)上的终端窗口了解到,语法如下: pmd.sh html|xml|text|vbhtml rulesetfile1[,rulesetfile2[,..]] 但问题是,rulesetfile1 的名称是什么, 2 ... n... 我的意思是我在网站上看到了这个列表:http: //pmd.sourceforge.net/rules/index.html 但这与我可以提供的逗号分隔列表有什么关系运行shell命令?有人可以指出我的交叉引用,以便我可以将两者关联起来吗?干杯。
java - 帮助安装 PMD Eclipse 插件
我正在尝试将 PMD 安装到我的 Eclipse Helios 安装中。我按照通常的说明在 Eclipse 中使用“安装新软件”功能。一切似乎都很顺利,安装完成。重新启动 Eclipse 后,使用 PMD 的选项没有按预期出现(通过右键单击项目)。
有人可以就我可能错过的任何步骤提供建议吗?Eclipse 是安装在运行 KDE 的 Red Hat 上的 20100617-1415 版本。
任何指导将不胜感激。
谢谢
java - Eclipse:PMD 快捷方式(内置、自定义...)
这可能是一个完全懒惰的问题,但我遇到了以下问题:
当我想 PMD 检查我的代码时,我需要执行以下步骤:
- 右键单击项目
- 从上下文菜单中选择 PMD
- 选择“使用 PMD 检查代码”
可以在 10 分钟内执行一次,但不是在 30 秒内执行一次。
有没有办法让这个过程更快?喜欢使用一些快捷方式(虽然还没有找到)或创建自己的?
谢谢