Jenkins

时间:2017-03-22 14:31:50

标签: java maven jenkins sonarqube jacoco

我有一个独立的Jenkins作业在我们的代码库上运行Sonar,它工作正常,但我始终将代码覆盖率设为零,尽管后处理作业正确显示了Jenkins中的代码覆盖率。我认为问题在于Sonar没有正确地获取exec文件,因为我在Jenkins日志中收到了这个:

INFO: Analysing D:\Data\CCS\Jenkins\jobs\Sonar Scan\workspace\ccs-core\target\jacoco.exec
INFO: Analysing D:\Data\CCS\Jenkins\jobs\Sonar Scan\workspace\ccs-core-common\target\jacoco.exec
INFO: Analysing D:\Data\CCS\Jenkins\jobs\Sonar Scan\workspace\ccs-core-client\target\jacoco.exec
INFO: No JaCoCo analysis of project coverage can be done since there is no class files.

尽管在作业完成后我可以看到文件位于该位置。

我在构建中有两个步骤,第一步是通过mvn运行Jacoco:

clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true

第二个只使用Sonar插件生成报告。然后是在詹金斯生成Jacoco报告的后处理报告。

一些有用的灵魂能否指出我可能缺少的东西?

1 个答案:

答案 0 :(得分:0)

试试这个:

在pom.xml中

    <properties>
<jacoco.data.file>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.data.file>
...
</properties>

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>

                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                    <configuration>
                        <destFile>${jacoco.data.file}</destFile>
                        <propertyName>surefireArgLine</propertyName>
                    </configuration>
                </execution>
                <execution>
                    <id>post-unit-test</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                    <configuration>
                        <dataFile>${jacoco.data.file}</dataFile>
                        <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
                    </configuration>
                </execution>
                    ...
                    ...

在sonar-projet.properties

sonar.jacoco.reportPath=coverage-reports/jacoco.exec