问题标签 [checkstyle]

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 回答
1976 浏览

xml - Checkstyle 的 PackageHtml 规则忽略 package-info.java

我使用 checkstyle 来分析我的代码。一个有用的规则是 PackageHtml,它检查包是否包含 Javadoc 描述。但是对于较新的 java 版本,建议使用 package-info.java 而不是 package.html。问题是,checkstyle 忽略 package-info.java 并报告违反规则。如何将 checkstyle 配置为检查包文档,但接受 package.htmlpackage-info.java?

0 投票
17 回答
68054 浏览

java - Checkstyle 与 PMD

我们正在为我们的 Java 产品的构建系统中引入静态分析工具。我们使用的是 Maven2,所以CheckstylePMD集成是免费的。然而,在执行基本样式规则方面,这两个工具之间的功能似乎有很大的重叠。

使用这两者有什么好处吗?如果一个可以工作,我不想维护 2 个工具。如果我们选择一种,我们应该使用哪一种,为什么?

我们还计划使用 FindBugs。我们应该看看其他静态分析工具吗?

更新:共识似乎是 PMD 优于 CheckStyle。我看不出同时使用两者的充分理由,而且我不想维护两组规则文件,因此我们可能会专门针对 PMD。我们还将引入 FindBugs,也许最终还会引入 Macker 来执行架构规则。

0 投票
6 回答
14914 浏览

java - checkstyle + 抑制过滤器

我有一个 checkstyle 抑制过滤器设置(例如忽略单元测试代码中的幻数)。

抑制 xml 文件与 checkstyle xml 文件位于同一文件夹中。但是,这个文件实际上是不同的:在我的 Windows 开发框中,它位于 Linux CI 服务器上的 d:\dev\shared\checkstyle\config 中,它将位于另一个开发者框的 /root/repo/shared/checkstyle/config 中它可能在任何地方(他们查看他们的 svn 存储库)。

唯一“一致”的是抑制文件始终与 checkstyle xml 文件位于同一文件夹中。我无法弄清楚如何确保始终一致地拾取该文件。另外我不知道为什么 checkstyle 不支持 checkstyle xml 文件中的嵌入式抑制。

有什么帮助吗?

0 投票
2 回答
1737 浏览

java - CheckStyle 模块“NeedBraces”可以与嵌套的 if/else 块一起使用吗?

我们正在使用CheckStyle来执行我们的样式标准。我们选择包含的样式规则之一是NeedBraces模块。

NeedBraces指定每个块类型语句(例如if,else,for)必须有左花括号和右花括号。但是,据我所知,它并不能完全正常工作。

此示例将触发 CheckStyle 错误。

因为 else 案例没有大括号。但是,下一个示例未能触发 CheckStyle 错误。

由于 else 情况下缺少大括号,这应该失败,但 checkstyle 让它通过。仔细检查文档后,我找不到任何原因导致它无法正常工作。

那么... CheckStyle 模块“NeedBraces”可以与嵌套的 if/else 块一起使用吗? 有任何想法吗?


这个问题的答案引出了另一个问题:是否有规则将上述不良代码标记为违规?

0 投票
1 回答
2204 浏览

java - 是否有 CheckStyle 规则强制 if else 关键字位于 if/else 阶梯中的同一行?

基于这个问题,CheckStyle 的默认模板似乎将允许 if else 梯子用换行符分隔ifand 。else

这意味着我希望将此代码标记为违规:

是否有 CheckStyle 规则来防止这种情况?查看文档,我没有看到一个,如果我不需要的话,我不想使用通用的正则表达式规则。

此外,如果我使用GenericIllegalRegexp模块,多行正则表达式似乎不起作用。有什么补救措施吗?

0 投票
4 回答
5030 浏览

maven-2 - Maven 2 Checkstyle configLocation

I have a project which has as maven dependency a jar file which includes a xml file where I stored my rules for checkstyle. I thought it would be ok to just use this configuration:

My understanding is that the file should be searched on the classpath and my jar file is a Maven dependency so it should be found, however I get a resource not found exception.

Any suggestions?

0 投票
7 回答
1270 浏览

java - 检测作为参数传递的对象的变化值

我现在正在使用看起来像这样的代码

我认为更改作为参数传递的对象是不好的做法。是否有检测这种代码的工具?我查看了 findbugs、pmd 和 checkstyle,但找不到任何检查。

PS对不起不好的例子。

0 投票
3 回答
1005 浏览

java - 您知道将强制执行休眠最佳实践的 PMD 或 Checkstyle 规则吗?

例如,不通过字符串操作等来构建查询。

0 投票
2 回答
5208 浏览

java - 在自动 Eclipse 构建期间将 checkstyle 与 Ant 一起使用

在过去的几个月里,我一直在为我们的应用程序慢慢改进 Eclipse 自动 PDE 构建过程。

我尝试的第一件事是自动化测试用例。下一步是一些脚本代码,用于为linuxwindows自动生成安装程序。

现在我想在流程中添加一些静态代码分析报告。在我的公司,我们为此使用 Checkstyle。

我知道可以自动化 Checkstyle 插件,使其可以从构建过程生成报告。将 checkstyle 结果与已经生成的单元测试报告一起分发会很有用。

有没有人有一些很好的例子来说明如何以相对轻松的方式实现这一目标?

0 投票
2 回答
10183 浏览

ant - 如何定义 checkstyle 的抑制定义,适用于 ant 和 eclipse

我在项目 checkstyle 中使用,并且在我的 checkstyle-configuration 中定义了一个SuppressionFilter 。我使用 Apache ant 通过持续集成进行自动构建。

我的问题来自以下情况:我不想将太多文件填充到基于项目的ir中,因此 checkstyle.xml 和 suppresss.xml 都位于名为 conf 的子目录中(用于构建配置)。现在,Ant 和 Eclipse 以不同的方式查找 suppresss.xml。

在我声明了一个 ant-task 以使用 checkstyle 的基本配置查找 checkstyle.xml 之后,Ant 使用 project-basedir 作为 basedir 来查找 suppresss.xml。这个 checkstyle.xml 现在包含以下内容:

这样 ant-build 找到了 suppresss.xml,因为 build 的 basedir 是项目目录。

现在使用 Eclipse 的checkstyle-plugin会带来一个问题。它从 checkstyle.xml 的路径 (conf) 开始查找 suppresss.xml。对于 Eclipse,声明必须如下所示才能起作用:

编辑:即使这不起作用,Eclipse 似乎总是需要一个绝对路径。

我想知道一种方法,即 Eclipse 和 Ant 都可以使用相同的 checkstyle-configuration。有人知道这个问题的解决方案吗?绝对路径不是解决方案,因为每个开发人员和 CI-Server 对项目目录都有不同的路径。