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

java - MethodLength 和 FileLength 的最佳检查样式设置是什么?

我正在启动一个新的 Java Web 项目,该项目将由多达 10 名开发人员共同开发。

一旦代码库变大,可能很难更改,那么用于 methodLength 和 fileLength 的最佳 checkstyle 设置是什么?

0 投票
1 回答
967 浏览

svn - 如何避免 Subversion 预提交挂钩中的行分隔符转换(导致错误的行号)?

我们有以下环境:带有 Apache 2.2.14 和 SVN 1.6.6 通过 WebDAV 的 Windows 2008 服务器。多个开发人员从不同的 Windows 平台提交 Java 代码。

现在我们要在我们的存储库中实现一个预提交钩子,在提交的代码上运行 Checkstyle。为此,我们使用 SVNChecker ( http://svnchecker.tigris.org/ ),效果很好。不幸的是,当 Checkstyle 报告错误时,报告中的行号是实际行号的双精度值。

当您在 SVN 中提交某些内容时,它会创建一个包含新文件的临时目录。然后,运行预提交挂钩,如果成功,新文件实际上会提交到存储库。我在十六进制编辑器中分析了这些临时文件,发现所有换行符 (\n) 都替换为回车符和换行符 (\r\n)。当我们在文件中使用 Windows 换行符 (\r\n) 时,这导致了 \r\r\n,这被 Checkstyle 和几个文本编辑器视为两个换行符。奇怪的是,从我们的存储库中签出时换行符是正确的,因此它们以某种方式被转换回某个地方。

我可以通过将属性 svn:eol-style (参见http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.5)设置为 native来解决这个问题. 那时一切正常。不幸的是,对我们来说,这意味着我们必须将此属性添加到存储库中的每个文件中。据我所知,SVN 客户端中有一个设置会在您添加新文件时自动执行此操作,但不幸的是,我们无法告诉所有开发人员将此设置添加到他们的 SVN 客户端。

eol 样式属性的描述说“默认情况下,Subversion 不会注意文件中使用的行尾 (EOL) 标记的类型”。对我来说,它看起来像 SVN 中的一个错误,尽管如此,换行符被转换了。

有谁知道如何在不使用丑陋的解决方法(例如手动将换行符转换回预提交挂钩)的情况下解决此行为?

谢谢你的帮助,memminger

0 投票
2 回答
712 浏览

xhtml - 是否有类似 Checkstyle 的工具来监控 XHTML(或 XML)页面?

我正在处理一个项目,其中我们有许多 JSF 页面 - 使用XHTML格式。我们使用Sonar(以及 Checkstyle、PMD、FindBugs...)来监控我们的代码质量。这对我们应用程序的 Java 部分非常有用。

现在,我想要一个工具(理想情况下,可以通过编写我自己的插件将其链接到 Sonar)来检查我的应用程序的 XHTML 部分。

那么,有没有类似 checkstyle 的工具可以检查我页面上的某些规则?例如,当我遇到此类代码时,此工具会发出警告:

或者 :

我知道 Checkstyle 提供了一个基于正则表达式的规则,但我担心解决方案对于某些规则来说太复杂了......

0 投票
2 回答
3023 浏览

jdbc - 避免 JDBC 查询中的 CheckStyle 幻数错误

我正在为班级做一个小组项目,我们正在尝试 CheckStyle。

我对 Java 相当熟悉,但在此之前从未接触过 JDBC 或做过任何数据库工作。

我想知道是否有一种优雅的方法可以避免在preparedStatement 调用中出现幻数错误,请考虑:

setString 方法被标记为幻数,到目前为止,我只是将数字 3-10 左右添加到幻数的忽略列表中,但我想知道是否有更好的方法将这些值插入到语句中。我还恳求您在看到该代码时想到任何其他建议,我想避免养成任何讨厌的习惯,例如我应该使用 Statement 还是 PreparedStatement 好吗?那会让我引用列名吗?那是理想的吗?ETC...

谢谢!

0 投票
1 回答
11616 浏览

checkstyle - 如何仅针对特定规则在代码块中禁止检查样式检查?

可能重复:
如何禁用特定代码行的特定检查样式规则?

在关闭一段代码的 Checkstyle 时,是否有一种语法只会禁止特定的检查。

所以不仅仅是

// CHECKSTYLE:OFF
代码
// CHECKSTYLE:ON

你可以有类似的东西

// CHECKSTYLE:OFF:RequireThis,
代码
// CHECKSTYLE:ON

在我们故意对样式进行例外处理的情况下,最好更清楚例外情况是什么。

0 投票
2 回答
1760 浏览

java - 使用 Checkstyle 允许单行访问器(getter/setter)语法

我们希望拥有使用单行语法的普通 Java 属性访问器,因此它们占用的空间要少得多,并且更具可读性(就快速“查看”访问器集而言)。但我们确实希望对 checkstyle 配置中的所有其他内容强制执行多行方法语法。但我不确定如何为 Checkstyle 配置中的访问器设置此异常,并怀疑这可能是不可能的。

所以我们希望我们的访问器看起来像这样:

[事实上,我们宁愿根本没有琐碎的访问器,而只是用@Propertyor 注释私有成员变量并为我们生成访问器,因为编写无穷无尽的 get 和 set 代码并没有真正的好处,但这是一个普遍的 Java 挫折就这个问题而言,顺便说一句。]

0 投票
1 回答
4281 浏览

maven-2 - 检查样式不起作用

我是 maven 和 chekstyle 的新手,所以需要问一些问题......我想在基于 maven 的项目中使用 checkstyle,所以在我的项目中pom.xml添加了依赖项

而且我还在插件标签中添加了条目:

但是当我使用 command 运行我的 maven 构建时mvn clean install, checkstyle 什么也没做。而且由于我checkstyle.xml的系统中还没有任何东西,它不应该抱怨我的错误吗?

我还缺少什么配置?

0 投票
1 回答
1487 浏览

eclipse - checkstyle:禁用++警告

我最近为 eclipse 安装了 checkstyle 插件,虽然它确实帮助我使我的代码的某些部分更清晰,但有一些愚蠢的规则。除了 using ++ is not allowed 规则之外,我已经能够禁用大多数这些。有谁知道我如何禁用那个?

0 投票
4 回答
866 浏览

coding-style - 新语言的静态代码分析。从哪儿开始?

我刚刚接到了一项新任务,看起来这将是一个有趣的挑战。

客户希望为其在 JVM 上运行的内部(即将开源)编程语言开发代码样式检查工具。语言语法很像 Java。

客户基本上希望我制作类似checkstyle的东西。

所以我的问题是,你将如何解决这个问题?给定一张白纸,您会向客户提出什么建议?

我想我有 3 个选择

  1. 从头开始写一些东西。我不想这样做,因为似乎这种代码分析工具问题已经解决了很多次,必须有一个更“框架”或“平台”导向的方法。

  2. 分叉现有的代码样式检查工具并修改解析以适应这种新语言等

  3. 扩展或插入现有的静态代码分析工具。(也许为Yasca写一个插件?)

0 投票
1 回答
518 浏览

regex - jcip 注释的 checkstyle 规则

我想要一个规则来检查字段和类是否在实践中使用 java 并发进行了正确的注释:http: //mvnrepository.com/artifact/net.jcip/jcip-annotations

字段必须用@GuardedBy 注释,类必须用@Immutable、@ThreadSafe 或@NotThreadSafe 之一注释。

我目前应用了一条规则,它确保 Spring Dao 类使用 @Repository 而不是 @Service 或 @Component 进行注释。

这种方法的问题是,我只能检查一些注释并告诉我应该更好地使用另一个注释。这对 jcip 注释检查没有帮助,因为我无法检查“不存在特定注释”。

对于初学者来说,如果有人知道如何将上面的 Dao 检查转换为仅确保 @Repository 存在于名称以 Dao 结尾的类上的检查,那将是很酷的。然后可以使用该模式来开发 jcip 注释检查。

或者也许不是尝试转换正则表达式检查,也许有一些方法可以通过 checkstyle 的令牌支持来实现 jcip 规则?这可能会使规则变得健壮。

无论如何,我想知道如何通过 checkstyle 确保特定的注释必须出现在特定的元素上。希望有人知道这一点。:)