尝试使用NetBeans /声纳皮棉找到自动装箱

时间:2020-05-17 19:17:28

标签: java netbeans sonarlint

我继承了一个项目,有些类将值存储为float,然后将其传递到另一个类,该值存储为Float。有什么方法可以配置sonarlint或netbean来检测这种情况?

我要问的原因是,我不确定在这些类型更改期间是否会丢失任何进动,而且我也肯定这会带来一些开销。

鉴于工作环境的性质,我仅限于使用Sonar Lint或netbeans

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是在 POM 文件中添加一个 report 部分。使用 mvn site 构建时(可能需要一段时间),将生成描述问题的 HTML 页面 (target/site/index.html) 或 XML 文件 (target/spotbugsXml.xml)。

任何用模式 Bx: 标记的东西都表明使用了一个可疑的编程问题,从spotbugs 的角度来看,使用装箱/拆箱。

XML 文件可用作审计跟踪审查的输入。

下面描述的报告部分还调用了一些其他静态代码分析工具,这些工具也可能指出其他可能需要解决的问题。

 <reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>${maven-project-info.version}</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>index</report>
                        <report>ci-management</report> 
                        <report>dependencies</report>
                        <report>dependency-convergence</report>
                        <report>dependency-info</report>
                        <report>dependency-management</report>
                        <report>distribution-management</report>
                        <report>issue-management</report>
                        <report>licenses</report>
                        <report>mailing-lists</report>
                        <report>modules</report>
                        <report>plugin-management</report>
                        <report>plugins</report>
                        <report>scm</report>
                        <report>summary</report>
                        <report>team</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>

        <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.2.0</version>
            <configuration>
                <effort>Max</effort>
                <threshold>low</threshold>
                <xmlOutput>true</xmlOutput>
            </configuration>
        </plugin> 

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <reportSets>
                <reportSet>
                    <id>html</id>
                    <configuration>
                        <doctitle>My API for ${project.name} ${project.version}</doctitle>
                        <windowtitle>My API for ${project.name} ${project.version}</windowtitle>
                    </configuration>
                    <reports>
                        <report>javadoc</report>
                    </reports>
                </reportSet>
                <reportSet>
                    <id>test-html</id>
                    <configuration>
                        <testDoctitle>My Test API for ${project.name} ${project.version}</testDoctitle>
                        <testWindowtitle>My Test API for ${project.name} ${project.version}</testWindowtitle>
                    </configuration>
                    <reports>
                        <report>test-javadoc</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

spotbugs Maven 页面的一个条目表明这只能保证适用于 Java 8。此代码已经过 Java 版本 8 和 11 的测试,没有遇到任何问题。

有关斑点虫的更多信息,请访问 Spotbugs maven plugin