sonarqube - Sonar 分析后未填充代码覆盖率

标签 sonarqube code-coverage sonarqube5.6

我使用的是sonarqube5.6.1。

我有一个多模块项目,我正在使用以下命令运行 Sonar 分析。

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar -Dsonar.host.url=http://bamboo.in.XXX.com:8085 -Dsonar.analysis.mode=publish -Dsonar.issuesReport.html.enable=true -Dsonar.dynamicAnalysis=false

但是代码覆盖率根本没有被填充。

有人可以帮忙吗?我可以看到以下警告,不确定这是否是原因。

[INFO] Process project properties
[WARNING] /!\ A multi-module project can't have source folders, so '/ssdd5/sameenud/dev/trunk/AAAA/BBBB/CCCC/DDDD/src/main/java' won't be used for the analysis. If you want to analyse files of this folder, you should create another sub-module and move them inside it.

我们的文件夹结构如下,

AAAA
   --BBBB
       pom.xml
       ---CCCC
          pom.xml
          ---DDDD
             pom.xml

我尝试手动编译它,但没有运气,同样的问题。

最佳答案

我也遇到了类似的问题,SonarQube 6.7.2 的 Sonar 仪表板上覆盖率为 0.0%,并且没有单元测试: Maven:3.5.2, java :1.8, Jacoco:使用过 7.0/7.9/8.0, 操作系统:Windows

经过一番努力寻找正确的解决方案,解决了此配置的问题,我的父 pom 如下所示:

 <properties>
            <!--Sonar -->
            <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
            <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
        <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
            <sonar.language>java</sonar.language>

        </properties>

        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>1.5</source>
                            <target>1.5</target>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.sonarsource.scanner.maven</groupId>
                        <artifactId>sonar-maven-plugin</artifactId>
                        <version>3.4.0.905</version>
                    </plugin>

                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>0.7.9</version>
                        <configuration>
                            <destFile>${sonar.jacoco.reportPath}</destFile>
                            <append>true</append>
                        </configuration>
                        <executions>
                            <execution>
                                <id>agent</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                </plugins>
            </pluginManagement>
        </build>

我尝试了一些其他选项,例如jacoco-aggregate,甚至通过将其包含在父pom中来创建子模块,但没有真正起作用&这很简单。我在日志中看到<sonar.jacoco.reportPath>已弃用,但仍按原样工作,并且似乎在执行时自动替换或可以手动更新为 <sonar.jacoco.reportPaths>或最新的。完成设置后,在cmd中启动mvn clean install,然后mvn org.jacoco:jacoco-maven-plugin:prepare-agent install,然后执行mvn sonar : Sonar ,这是我尝试过的,请告诉我是否有其他最佳解决方案可用。希望这有帮助!如果没有,请发布您的问题..

关于sonarqube - Sonar 分析后未填充代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146247/

相关文章:

mysql - Sonar 提示 SonarQube 中已经定义了一个项目,但不是项目的模块

findbugs - 轻松在 (Java) 静态代码分析工具中编写自定义规则

gradle - 在Gradle构建中配置多个SonarQube实例

java - 自定义 SonarQube 规则来识别实例变量

sonarqube 中的 C# 项目

java - 如何将连体衣集成到开源项目中?

java - maven jacoco : not generating code coverage report

php - 从 PHPUnit 的几次执行中聚合代码覆盖率

java - fb-contrib :SEO_SUBOPTIMAL_EXPRESSION_ORDER? 的误报