当前位置: 首页 > 知识库问答 >
问题:

Checkstyle和PMD仅作为建议

计承德
2023-03-14

我如何设置使用pmd和checkstyle结果仅作为建议,并在构建服务器上禁用它们?那么这样做会不会是一种不好的做法呢?

测试中的类需要用mock对象填充其字段,这些对象不会在测试中的任何地方使用,但需要用@mock声明和注释,以使测试中的类正确工作。添加@SuppressWarnings(“pmd.unusedPrivateField”)。

在测试类中,我将有方法从一长串参数创建对象,例如:createPerson(String firstname,String lastname,int shoesize,String favouritecolor,...)。这些对象通常是从数据库或XML创建的。添加@SuppressWarnings(“pmd.ParameterNumberCheck”)。

有时我的文档会是:“这个方法确保以下3种情况下的X:\n...”。显然这是不允许的,因为第一句应该以句号结尾。

父类X有一些它的所有子类都需要和使用的字段y,但是checkstyle不允许它,除非通过方法(getY())访问该字段。这太不自然了,伊莫。

一个选择是永久关闭造成最大麻烦的支票,然而支票可能是一个麻烦或非常有用,取决于上下文。我认识到,在代码中显式地抑制警告也是一种记录只有在特定上下文中,检查才是不相关的和恼人的方式。让我恼火的是抑制的数量,几乎每个testclass都需要抑制,而其他一些类需要变通方法。

那么,生成警告,但不允许checkstyle和pmd违规导致te构建失败,这会是一种解决方案吗?

共有1个答案

华瀚漠
2023-03-14

测试类包含...
一个正在测试的类...
在测试类中...

在我看来,您应该在您的测试代码下抑制这些检查,因为您不同意它们。

这是一种常见的情况,就像在Checkstyle中,我们不记录我们的测试代码,但是我们的主代码记录了所有的东西。为了解决PMD的问题,我们将配置划分为test和main。为了避免Checkstyle实用程序出现这种情况,我们取消测试目录的违规。您还可以查看检查的选项,并查看是否有配置它以忽略您的案例的方法。

因为我不知道你的方法的内容,所以我不能肯定地说,但是第一句应该是简单地解释方法的作用和目标。然后你可以按照你提到的具体案例来进行。Checkstyle只是要求第一句以句点结束,而不是每句都要结束。

父类X有一些它的所有子类都需要和使用的字段y,但是checkstyle不允许它,除非通过方法(getY())访问该字段。这太不自然了,伊莫。

既然您完全不喜欢这样,那么只需禁用对受保护字段的检查。如果查看VisibilityModifier的文档,可以将ProtectedAllowed更改为True并使其忽略这些特定情况。

我发现我的代码收集了很多尝试处理一些警告的lint。

在我看来,你似乎没有根据自己的喜好定制这些工具,只是试图使用默认配置。

 类似资料:
  • 我使用的是sonarqube community Version6.7.2,我记得,SonarJava插件的目标是用squid规则取代(至少大部分是)Findbugs和PMD规则。当有一个合适的squid规则替换时,这些提供者提供了一个关于规则的信息,但现在我无法找到它,例如,来自findbugs的一些规则与我从squid中知道的其他规则非常相似。 Sonarqube建议只使用squid规则?这些

  • 问题内容: 我们正在将静态分析工具引入Java产品的构建系统中。我们正在使用Maven2,因此Checkstyle和PMD集成是免费提供的。但是,就执行基本样式规则而言,这两个工具之间似乎在功能上有很大的重叠。 同时使用这两者有好处吗?如果一个工具可以工作,我不想维护两个工具。如果选择一种,应该使用哪一种,为什么? 我们还计划使用FindBugs。还有其他静态分析工具值得我们关注吗? 更新: 共识

  • 我需要在Eclipse中为一个开发项目使用PMD、Findbugs和Checkstyle。Java6足以使用这些工具吗?或者我需要java 7?

  • 我开始使用静态代码分析工具,比如Checkstyle、PMD和FindBugs。PMD允许通过在行尾添加注释将代码标记为已审核: 我真的不喜欢尾随注释,CheckStyle也不喜欢(“不要使用尾随注释”)。有没有一种方法可以告诉PMD,在不使用后续注释的情况下对特定代码进行了审阅?

  • null b.其他项目之一ProjectAUtilities在PMD步骤失败,即使在PMD的Build.Gradle中忽略错误为true。错误表示有3个测试失败。 c.如何在build.gradle文件(而不是ANT)中为checkstyle/pmd/findbugs使用include/exclude。即除了“src/java”文件夹之外,它不会去做任何事情。 多谢了。

  • 3)什么是最佳组合规则集。 我们使用的是Sonarquber5.6.3。 最新的checkstyle需要升级到5.6.4,目前只关注PMD、Findbugs和Sonarway插件。 提前致谢