由于没有 class 个文件,因此无法对项目覆盖率进行 JaCoCo 分析
No JaCoCo analysis of project coverage can be done since there is no class files
我正在使用 Bamboo、SonarQube 和 Maven 插件在 SonarQube 中生成 Jacoco 报告。它正在生成 jacoco.exec 文件,但如何在 SonarQube 中显示报告?以下插件我正在使用
'
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<destFile>${project.build.directory}/jacoco.exec</destFile>
<!-- Sets the name of the property containing the settings for JaCoCo
runtime agent. -->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<!-- Ensures that the code coverage report for unit tests is created
after unit tests have been run. -->
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<!-- Sets the output directory for the code coverage report. -->
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<!-- Sets the VM argument line used when unit tests are run. -->
<argLine>${surefireArgLine}</argLine>
<!-- Skips unit tests if the value of skip.unit.tests property is true -->
<skipTests>${skip.unit.tests}</skipTests>
<!-- Excludes integration tests when unit tests are run. -->
<excludes>
<exclude>**/IT*.java</exclude>
</excludes>
</configuration>
</plugin>'
我遇到以下异常
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoSensor
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoSensor (done) | time=72ms
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoOverallSensor
build 08-Sep-2016 15:33:06 INFO: Analysing /opt/shared/atlassian/bamboo/xml-data/build-dir/EV-LEV362-JOB1/enterprise/projects/target/jacoco.exec
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoOverallSensor (done) | time=100ms
build 08-Sep-2016 15:33:06 INFO: Sensor XmlFileSensor
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
就像日志中所说的那样;检查您是否指定了以下内容:
sonar.java.binaries=classes directory, most likely target/classes
如果您还可以指定,效果会更好(这样就不会抱怨找不到某些 类):
sonar.java.libraries=libraries directory, likely target/project/WEB-INF/lib
我正在使用 Bamboo、SonarQube 和 Maven 插件在 SonarQube 中生成 Jacoco 报告。它正在生成 jacoco.exec 文件,但如何在 SonarQube 中显示报告?以下插件我正在使用 '
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<destFile>${project.build.directory}/jacoco.exec</destFile>
<!-- Sets the name of the property containing the settings for JaCoCo
runtime agent. -->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<!-- Ensures that the code coverage report for unit tests is created
after unit tests have been run. -->
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<!-- Sets the output directory for the code coverage report. -->
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<!-- Sets the VM argument line used when unit tests are run. -->
<argLine>${surefireArgLine}</argLine>
<!-- Skips unit tests if the value of skip.unit.tests property is true -->
<skipTests>${skip.unit.tests}</skipTests>
<!-- Excludes integration tests when unit tests are run. -->
<excludes>
<exclude>**/IT*.java</exclude>
</excludes>
</configuration>
</plugin>'
我遇到以下异常
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoSensor
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoSensor (done) | time=72ms
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoOverallSensor
build 08-Sep-2016 15:33:06 INFO: Analysing /opt/shared/atlassian/bamboo/xml-data/build-dir/EV-LEV362-JOB1/enterprise/projects/target/jacoco.exec
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
build 08-Sep-2016 15:33:06 INFO: Sensor JaCoCoOverallSensor (done) | time=100ms
build 08-Sep-2016 15:33:06 INFO: Sensor XmlFileSensor
build 08-Sep-2016 15:33:06 INFO: No JaCoCo analysis of project coverage can be done since there is no class files.
就像日志中所说的那样;检查您是否指定了以下内容:
sonar.java.binaries=classes directory, most likely target/classes
如果您还可以指定,效果会更好(这样就不会抱怨找不到某些 类):
sonar.java.libraries=libraries directory, likely target/project/WEB-INF/lib