问题标签 [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.
xml - Checkstyle 的 PackageHtml 规则忽略 package-info.java
我使用 checkstyle 来分析我的代码。一个有用的规则是 PackageHtml,它检查包是否包含 Javadoc 描述。但是对于较新的 java 版本,建议使用 package-info.java 而不是 package.html。问题是,checkstyle 忽略 package-info.java 并报告违反规则。如何将 checkstyle 配置为检查包文档,但接受 package.html和package-info.java?
java - Checkstyle 与 PMD
我们正在为我们的 Java 产品的构建系统中引入静态分析工具。我们使用的是 Maven2,所以Checkstyle和PMD集成是免费的。然而,在执行基本样式规则方面,这两个工具之间的功能似乎有很大的重叠。
使用这两者有什么好处吗?如果一个可以工作,我不想维护 2 个工具。如果我们选择一种,我们应该使用哪一种,为什么?
我们还计划使用 FindBugs。我们应该看看其他静态分析工具吗?
更新:共识似乎是 PMD 优于 CheckStyle。我看不出同时使用两者的充分理由,而且我不想维护两组规则文件,因此我们可能会专门针对 PMD。我们还将引入 FindBugs,也许最终还会引入 Macker 来执行架构规则。
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 文件中的嵌入式抑制。
有什么帮助吗?
java - CheckStyle 模块“NeedBraces”可以与嵌套的 if/else 块一起使用吗?
我们正在使用CheckStyle来执行我们的样式标准。我们选择包含的样式规则之一是NeedBraces模块。
NeedBraces指定每个块类型语句(例如if
,else
,for
)必须有左花括号和右花括号。但是,据我所知,它并不能完全正常工作。
此示例将触发 CheckStyle 错误。
因为 else 案例没有大括号。但是,下一个示例未能触发 CheckStyle 错误。
由于 else 情况下缺少大括号,这应该失败,但 checkstyle 让它通过。仔细检查文档后,我找不到任何原因导致它无法正常工作。
那么... CheckStyle 模块“NeedBraces”可以与嵌套的 if/else 块一起使用吗? 有任何想法吗?
这个问题的答案引出了另一个问题:是否有规则将上述不良代码标记为违规?
java - 是否有 CheckStyle 规则强制 if else 关键字位于 if/else 阶梯中的同一行?
基于这个问题,CheckStyle 的默认模板似乎将允许 if else 梯子用换行符分隔if
and 。else
这意味着我希望将此代码标记为违规:
是否有 CheckStyle 规则来防止这种情况?查看文档,我没有看到一个,如果我不需要的话,我不想使用通用的正则表达式规则。
此外,如果我使用GenericIllegalRegexp模块,多行正则表达式似乎不起作用。有什么补救措施吗?
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?
java - 检测作为参数传递的对象的变化值
我现在正在使用看起来像这样的代码
我认为更改作为参数传递的对象是不好的做法。是否有检测这种代码的工具?我查看了 findbugs、pmd 和 checkstyle,但找不到任何检查。
PS对不起不好的例子。
java - 您知道将强制执行休眠最佳实践的 PMD 或 Checkstyle 规则吗?
例如,不通过字符串操作等来构建查询。
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 对项目目录都有不同的路径。