- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 CheckStyle 等 Java 静态代码分析工具的新手。我下载了 Checkstyle 包并看到了 2 组检查:
我比较了这些和 geosoft_checks.xml 所有 available in checkstyle 的主列表...本质上是一个 4 表的完整外部联接,以查看 3 个来源中的大部分都包含了哪些检查。
检查 |来源
----------|------------------------------------ ------------------
134.......| All available
75…………| checkstyle_checks.xml (加上指向 suppressions.xml 的 SuppressionFilter)
63…………| sun_checks.xml
73…………| geosoft_chekcs.xml (在删除在 checkstyle 5.7 中不起作用的 4 之后)
我只对 sun_checks 和 geosoft_checks 进行了分析,以确定我可以根据代码库中的实际发现安全地删除哪些(当然,有人可能会出现并违反其中一个未包含的许多检查)
是否有最近的指导方针来说明哪些检查包括哪些不会不必要地让开发团队感到沮丧?人们是否使用已回馈给开源社区的有用检查来扩展 checkstyle?
最佳答案
这是一个很好的问题,一个比简单的 SO 帖子更值得回答的问题。让我再试试。
首先,没有公认的通用指南可以帮助您。任何带着这样的指导方针来找你的人实际上只是在推销他自己的东西。所以,我坚信没有什么是你可以简单地采取、激活和完成的。这有点令人难过,但我们就是这样。
sun_checks 大多是历史性的,并且侧重于格式和命名。如果您别无选择,它们可能仍然是最好的开始。 checkstyle_checks 是 Checkstyle 团队用来检查他们自己的代码的工具。我不知道 geosoft_checks,它似乎是一种有据可查的本地指南形式。还有Google Java Style , 这已经很流行了,但是 afaik 还没有相应的 Checkstyle 规则集。
Checkstyle 是一种工具,其功能远不止检查 Java 代码的样式。您已经表明可用检查的数量几乎是规则集使用的检查数量的两倍。我自己的规则集使用 99 项检查,但它是根据我们正在构建的解决方案高度定制的。
就目前情况而言,我相信如果您认真地进行静态代码分析,总有一天您将不得不查看所有可用检查的列表并将您自己的规则集放在一起。随着项目的进行,您将添加它,以涵盖越来越多的案例,在这些案例中,您已经确定正在构建的解决方案中可能存在错误。微调和添加到 Checkstyle 配置文件将是一项持续的任务(例如,每周一小时)。
如果您想避免“不必要地挫败开发团队”,最重要的方面是您的规则要清晰、有据可查且保持一致。此外,将 Checkstyle 与您的夜间构建和/或版本控制系统集成。
最突出的 Checkstyle 扩展是 SevNTU Checkstyle和 Checkstyle Addons . SevNTU Checkstyle 的带头人也是今天 Checkstyle 的主要提交者,所以也许在未来的某个时候两者会合并。
关于checkstyle - 实现 Java Checkstyle 检查的准则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356795/
发现一个类似的问题,关于 QAPlug-FindBugs 和 FindBugs-IDEA 之间的区别,但不是关于 CheckStyle... 我认为(根据以前的经验)这些插件的一个区别是 QAPlug
试图弄清楚我是否做错了什么,或者这是否是 maven checkstyle 插件中的错误。如果我执行 mvn checkstyle:check 我会得到这个: jonathanfisher@odin
我想确保我的代码不超过 5 级缩进,如下所示: class Foo { // 0 void bar() { // 1 if () { // 2 if (
FileTabCharacter检查似乎对我不起作用。下面是我的配置: .. .. .. .. .. .. 我有 XML 文件 - pom.xml和 checksty
有没有办法设置 checkstyle 来防止方法体中的前导、多个或尾随空行: 例如 private void a() { - int a = 1; doStuff(a); - - doMoreStuf
有没有办法设置 checkstyle 来防止方法体中的前导、多个或尾随空行: 例如 private void a() { - int a = 1; doStuff(a); - - doMoreStuf
我是 CheckStyle 等 Java 静态代码分析工具的新手。我下载了 Checkstyle 包并看到了 2 组检查: checkstyle_checks.xml sun_checks.xml。
我想使用//@checkstyle:off 和//@checkstyle:on 来免除代码的某些部分被 checkstyle 检查,但它仍然在提示。 public void invoke() {
我正在尝试将 import-control 添加到我们的 checkstyle 中,使 import-control 文件存在于制作 checstyle.xml 文件的项目中,而不是我们稍后构建的项目
我跑了mvn checkstyle:checkstyle ,但它没有使用我的自定义 checkstyle XML 文件。 请告诉我如何使用我自己的 checkstyle 文件而不是默认/现在配置的文件
执行命令mvn checkstyle:checkstyle时出现以下错误: An error has occurred in Checkstyle report generation. ... Cau
在我正在处理的一个项目中,我们有很多自定义 Checkstyle 检查。例如,我们使用 RegexpSingleline 模块排除所有类型的东西。我们的检查样式规则如下所示:
我正在使用 checkstyle获取有关我的源代码的报告。这个问题是关于MagicNumberCheck . 我正在使用 Date/(org.joda.)DateTime在我的源代码中是这样的: Da
我通过命令行上的 mvn 构建我的项目。 每当发生 checkStyle 错误时,我都会看到这种类型的输出: [ERROR] Failed to execute goal org.apache.mav
我有一个使用 Tycho 构建的 Eclipse 插件代码库。它使用在依赖 Artifact 中定义的父 POM,该 Artifact 指定 Checkstyle 配置的名称。 我还使用 checks
我是使用 Jenkins 的新手,我最近用它构建了一个项目并安装了“Checkstyle”插件并收到了一份报告。 我想知道如何配置“Checkstyle”以忽略空格或其他可能出现的标准? 谢谢! 最佳
我过去使用过检查样式,记得使用快捷键来应用检查样式修复(节省大量点击)。我不记得我是否为它设置了快捷方式,或者它是否已经附带了一个。 我的问题分为两部分:1)有没有一种简单的方法来检查是否有“Appl
我正在使用一个基本的 maven 项目,其中在 pom.xml 中只定义了以下内容: 依赖 javaee-api 依赖 junit 插件 maven-compile-plugin 插件 maven-w
我试图让 maven-checkstyle-plugin 对我们所有的项目使用相同的配置文件。 我尝试了几种方法,但没有一种是有效的。 唯一似乎有效的是当我将配置文件放在我的 maven 项目的根目录
我在 maven 构建中添加了 checkstyle 但由于某种原因它只检查 src/main 文件夹并忽略 src/test 文件夹,这是我的项目结构: Proj - Module A -
我是一名优秀的程序员,十分优秀!