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

将SonarQube与Maven集成,重用Findbugs、PMD、Checkstyle、Surefire和Jacoco报告

欧阳安阳
2023-03-14
<properties>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <sonar.surefire.reportsPath>${project.parent.build.directory}/surefire-reports</sonar.surefire.reportsPath>
    <sonar.jacoco.reportPath>${project.parent.build.directory}/coverage-reports/${project.artifactId}-jacoco.exec</sonar.jacoco.reportPath>
    <sonar.findbugs.reportPath>${project.parent.build.directory}/findbugs/findbugs.xml</sonar.findbugs.reportPath>
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
</properties>

我没有更改Checkstyle、Findbugs、Jacoco或PMD插件配置。我在Surefire插件配置中添加了一些行:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <skip>${skip.test}</skip>
                    <testFailureIgnore>${testFailureIgnore}</testFailureIgnore>
                    <argLine>${surefireArgLine}</argLine>
                    <failIfNoTests>${failIfNoTests}</failIfNoTests>
                    <test>AllTests</test>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>org.sonar.java.jacoco.JUnitListener</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>

这些是声纳插件:

            <plugin>
                <groupId>org.codehaus.sonar-plugins.java</groupId>
                <artifactId>sonar-jacoco-listeners</artifactId>
                <version>${sonar-jacoco-listeners.version}</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>${sonar-maven-plugin.version}</version>
            </plugin>

当运行它时,我会得到这样的消息:“'Sonar.DynamicAnalysis‘is deprecated sund version4.3 and should nower be used”。但我不确定还能用什么。相关的JIRA问题也没有说明这一点(https://JIRA.codehaus.org/browse/sonar-5185),此外,Sonar似乎也没有从我的Maven运行中得到什么。仪表板只显示“代码行”、“重复”、“复杂度”、“目录纠结索引”和“单元测试成功”的值。从最后一个条目来看,至少单元测试的结果会被提取出来。

[INFO] [13:39:34.821] -------------  Scan Administration
[INFO] [13:39:34.822] Load module settings
[INFO] [13:39:34.869] Configure Maven plugins
[INFO] [13:39:34.871] Compare to previous analysis (2015-02-25)
[INFO] [13:39:34.872] Compare over 30 days (2015-01-26, analysis of 2015-01-26 05:14:41.328)
[INFO] [13:39:34.873] Compare to previous version (2015-01-16)
[INFO] [13:39:34.874] No quality gate is configured.
[INFO] [13:39:34.889] Initializer FindbugsMavenInitializer...
[INFO] [13:39:34.889] Initializer FindbugsMavenInitializer done: 0 ms
[INFO] [13:39:34.889] Base dir: /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/admin
[INFO] [13:39:34.889] Working dir: /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/admin/target/sonar
[INFO] [13:39:34.889] Source paths: pom.xml, src/main/java
[INFO] [13:39:34.890] Test paths: src/test/java
[INFO] [13:39:34.890] Binary dirs: target/classes
[INFO] [13:39:34.890] Source encoding: UTF-8, default locale: de_DE
[INFO] [13:39:34.890] Index files
[INFO] [13:39:35.112] 544 files indexed
[INFO] [13:39:42.216] Quality profile for java: DEFAULT
[INFO] [13:39:42.276] Sensor JavaSquidSensor...
[INFO] [13:39:42.303] Java Main Files AST scan...
[INFO] [13:39:42.303] 407 source files to be analyzed
[INFO] [13:39:52.304] 245/407 files analyzed
[INFO] [13:39:58.548] 407/407 source files analyzed
[INFO] [13:39:58.549] Java Main Files AST scan done: 16246 ms
[INFO] [13:39:58.566] Java bytecode scan...
[INFO] [13:39:58.895] Java bytecode scan done: 329 ms
[INFO] [13:39:58.896] Java Test Files AST scan...
[INFO] [13:39:58.896] 137 source files to be analyzed
[INFO] [13:39:59.676] Java Test Files AST scan done: 780 ms
[INFO] [13:39:59.676] 137/137 source files analyzed
[INFO] [13:39:59.677] Package design analysis...
[INFO] [13:40:00.767] Package design analysis done: 1090 ms
[INFO] [13:40:00.788] Sensor JavaSquidSensor done: 18512 ms
[INFO] [13:40:00.796] Sensor QProfileSensor...
[INFO] [13:40:00.797] Sensor QProfileSensor done: 1 ms
[INFO] [13:40:00.797] Sensor InitialOpenIssuesSensor...
[INFO] [13:40:00.839] Sensor InitialOpenIssuesSensor done: 42 ms
[INFO] [13:40:00.839] Sensor ProjectLinksSensor...
[INFO] [13:40:00.843] Sensor ProjectLinksSensor done: 4 ms
[INFO] [13:40:00.843] Sensor VersionEventsSensor...
[INFO] [13:40:00.850] Sensor VersionEventsSensor done: 7 ms
[INFO] [13:40:00.850] Sensor FileHashSensor...
[INFO] [13:40:00.863] Sensor FileHashSensor done: 13 ms
[INFO] [13:40:00.863] Sensor SurefireSensor...
[INFO] [13:40:00.863] parsing /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/uvds-admin/target/surefire-reports
[INFO] [13:40:00.920] Sensor SurefireSensor done: 57 ms
[INFO] [13:40:00.921] Sensor Maven dependencies...
[INFO] [13:40:01.086] Sensor Maven dependencies done: 165 ms
[INFO] [13:40:01.090] Sensor CPD Sensor (wrapped)...
[INFO] [13:40:01.090] JavaCpdEngine is used for java
[INFO] [13:40:01.101] Cross-project analysis disabled
[INFO] [13:40:02.295] Sensor CPD Sensor (wrapped) done: 1205 ms
[INFO] [13:40:02.432] Execute decorators...

共有1个答案

钦英发
2023-03-14

这里有一个POM配置为Sonarqube4.5.1,它对我来说是有效的,至少对Surefire和JaCoCo是有效的(参见结果)。

该项目使用mvn clean install-dsonar运行。

我不在我的项目中使用FindBugs。

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

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

  • 我的应用程序中有几个模块(项目和子项目)(在Gradle中),我还添加了插件:PMD、checkstyle、findbugs。这些插件在它们的目录中创建它们自己的报告(例如:PMD在目录“reports”中创建目录“PMD”并将其放入reports)。我想有一个报告所有这些插件。那是可能的?如果是,怎么做?

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

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

  • 刚开始为配置为“开箱即用”的Java项目评估SonarQube 3.7.2, 分析是从Ant触发的。 所有工作都很好,但在一个大项目中,我遇到了OutOfMemory异常,即使是-xmx1024m SonarQube附带了一个结合了Findbugs、JaCoCo、Checkstyle和pmd的Java质量配置文件。在下找不到任何关闭其中一个的设置,只有一个类名模式的筛选器。 是否有可能关闭这些工具