我正在研究Maven项目,我想在SonarQube服务器上查看代码覆盖率。我的代码在Kotlin中,我正在使用Jenkins构建所有内容。
我的问题是,在SonarQube的“代码覆盖率”部分下看不到任何东西。
有人可以告诉我我做错了什么吗?
我为此检查了视频,并尝试相应地更改我的POM文件。
更新:
我可以在本地计算机上生成代码覆盖率的index.html报告,但是现在我想在SonarQube上看到它。我相应地更改了POM文件,并可以生成报告。
现在有人可以告诉我如何在SonarQube服务器上获取该报告吗?
下面是我的Jenkinsfile:
#!groovy
pipeline {
agent any
stages{
stage('SonarQube Analysis'){
steps{
withSonarQubeEnv('otd-sonar') {
sh 'mvn clean verify sonar:sonar'
}
}
}
stage('Test Stage'){
steps{
sh 'mvn clean test'
}
}
stage('Package Stage'){
steps{
sh 'mvn clean package'
}
}
下面是我的POM文件:
<properties>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
<sonar.jacoco.reportPath>target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.jacoco.itReportPath>target/jacoco-it.exec</sonar.jacoco.itReportPath>
<!-- Sonar configuration -->
<jacoco.report.ut>${project.build.directory}/jacoco-ut.exec</jacoco.report.ut>
<jacoco.report.it>${project.build.directory}/jacoco-it.exec</jacoco.report.it>
<sonar.jacoco.reportPaths>${jacoco.report.ut},${jacoco.report.it}</sonar.jacoco.reportPaths>
<jacoco.plugin.version>0.8.1</jacoco.plugin.version>
</properties>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<executions>
<execution>
<id>jacoco-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>target/jacoco.exec</dataFile>
<outputDirectory>target/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<systemPropertyVariables>
<jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
</configuration>
</plugin>