草庐IT

findbugs

全部标签

自动找Bug/插件-代码静态检查findbugs-idea安装以及使用

目录简介IDEA安装FindBugsFindbugs配置配置排除一些类扫描级别IDEA中使用FindBugs:一些常见错误补充简介Findbugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Badpractice,80余种Correctness,1种Internationalization,12种Maliciouscodevulnerability,27种Multithreadedcorrectness,23种Performance,43种Dodgy。我们还可以自己配置检查规则(做哪些检查,不做哪些检查)

java - Findbugs 警告 : Integer shift by 32 -- what does it mean?

我正在使用Findbugs扫描第三方源代码(在集成到我的之前要小心),发现以下警告:longa=bBug:Integershiftby32Patternid:ICAST_BAD_SHIFT_AMOUNT,type:BSHIFT,category:CORRECTNESSThecodeperformsanintegershiftbyaconstantamountoutsidetherange0..31.Theeffectofthisistousethelower5bitsoftheintegervaluetodecidehowmuchtoshiftby.Thisprobablyisn'tw

java - 我是否需要在实现时再次@Nonnull?

虽然我认为应该有一个关于是否继承注释的通用规则,但我特别感兴趣的是让FindBugs识别我的规则,所以这个问题是FindBugs特定的。据我所知,JavaDoc注释取自接口(interface)并在实现时被忽略。这个概念是否也适用于像@Nonnull(或@NotNull)这样的注解?鉴于@Override注释,至少可以添加接口(interface)中不存在的额外注释。在下列情况下会发生什么?FindBugs会识别所有这些吗?关于整洁代码,哪一个是首选?接口(interface)@Nonnull,实现@Override接口(interface)@Nonnull,实现@Override,@

java - 在 Eclipse 中微调 FindBugs ant 任务

在eclipse中,我可以定义要从首选项页面报告的检测器ID和错误类别。我在FindBugsdocs中找不到类似的FindBugsant任务或在Eclipseant编辑器中使用自动完成功能。我可以调整的是努力和报告水平。调整检测器和类别是未记录或缺失的功能,还是我遗漏了什么?FindBugsEclipse插件中又是如何解决的? 最佳答案 我在使用findbugs和ant时也遇到了一些问题。这是我最后所做的:RunningFindBugs:${plugin}RunningFindBugs:${plugin}(unpacked)调用任务

java - 对于 FindBugs,jar305.jar 中的注释是否应该优于 annotation.jar 中的类似注释?

在FindBugsannotations.jar不是jsr305.jar的子集。但是,一些注释似乎是重复的(完全相同或非常接近)。如果我可以选择,我应该更喜欢jsr305.jar中的注释吗?请注意,我不只是想知道使用来自jsr305.jar的注释会“更好”只是因为它们代表了一个标准。相反,我想知道如果我更喜欢特定注释的jsr305.jar版本,FindBugs工具是否会执行相同(或更好)的分析。可能某些jsr305.jar注释应该是首选,但其他注释不应该是这样。我正在使用FindBugs1.3.9,即themostrecentversion在撰写本文时。使用此版本,我看到以下选项(如果

java - findbugs-maven-plugin 什么都不做

我不明白...我想在Maven3项目站点中启用findbugs报告,并将其添加到我的pom.xml中(如here所述):...org.codehaus.mojofindbugs-maven-plugin2.4.0...然后我运行了mvnsite但没有生成报告。有趣的是,当我改用2.3.1版时,会生成一份报告。但是2.3.2或2.4.0不起作用。当运行mvnsite-X时,相关的输出是这样的:[DEBUG]InsidecanGenerateReport.....false[DEBUG]canGenerateisfalse[DEBUG]classorg.codehaus.mojo.find

java - NonNull Lombok 构建器属性的 FindBugs 检测器

我有很多使用Lombok构建器的带有@NonNull字段的类。@BuilderclassSomeObject{@NonNullStringmandatoryField1;@NonNullStringmandatoryField2;IntegeroptionalField;...}但是,这使调用者可以选择在不设置mandatoryField的情况下创建对象,这在使用时会导致运行时失败。SomeObject.builder().mandatoryField1("...")//NotsettingmandatoryField2.build();我正在寻找在构建时捕获这些错误的方法。有非Lom

java - Intellij IDEA 内置检查代码 vs checkstyle, PMD & findbugs

最近我在寻找最好的代码检查工具集。我的IDE是Intellij15.0,我知道那里有很好的检查功能,但是当我浏览互联网时,我没有找到Intellij内置检查代码与这三个代码之间的良好比较。尝试过所有方法的人可以提供一些最佳实践吗?Intellij涵盖所有这些吗?我知道findbugs以二进制级别运行,但仍然让它留在比较中。 最佳答案 在Checkstyle项目本身,我们使用所有这些工具:Checkstyle,PMD,FindBugs和IntelliJIDEAinspections.这是我的观察:在格式化、空格、大括号位置、Javad

javax.annotation.Nonnull 与断言

我在方法参数上使用了Findbugs和javax.annotation.Nonnull。在私有(private)方法上,我通常添加一个断言行来检查是否为空privatevoidmyMethod(@NonnullStringstr){assertstr!=null....最新的Netbeans版本(7.3rc2)报告说断言检查不是必需的(因为Nonnull注释)。我不确定这是否是Netbeans错误。是否可以删除断言行,因为我指定了@Nonnull注释?据我所知,注释仅在静态分析期间使用,而断言在启用时在执行期间处于Activity状态,因此两者不可替代。 最

java - 当前有任何将 Sonar 用于 Java 7 代码的解决方法吗?

我尝试在Java7项目(它依赖于新的语法特性)上使用Sonar,但PMD部分和Checkstyle部分无法解析这些文件。Findbugs部分无法读取Java7类文件。这会导致Sonar仅考虑我的类的10%。有解决办法吗?编辑:ThereisanissueforJava7compatibility.请为这个问题投票,所以它会很快得到解决。 最佳答案 您可以尝试手动制作findbugsdevbuild并将其放入sonar。这不是最简单的方法。svncheckouthttp://findbugs.googlecode.com/svn/tr