首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jacoco SonarQube集成

Jacoco SonarQube集成
EN

Stack Overflow用户
提问于 2016-06-17 15:18:52
回答 1查看 7.8K关注 0票数 3

我花了几天的时间尝试让SonarQube显示Maven Jacoco插件的单元测试代码覆盖率。

我一直坚持的错误信息是

代码语言:javascript
复制
[INFO] Analysing .../target/jacoco.exec
[WARNING] Coverage information was not collected. Perhaps you forget to include debug information into compiled classes?

target/site/jacoco/index.html下的报告按预期生成,并包含行突出显示和行号。我已经读到,如果编译的类中没有包含调试信息,那么突出显示和行号将不会显示在此报告中。

我已经阅读了缺省情况下Maven包含调试信息,但是,以防我在我的项目maven-编译器-plugin设置中包含以下配置

代码语言:javascript
复制
<configuration>
    <debug>true</debug>
    <debuglevel>lines,vars,source</debuglevel>
</configuration>

我的settings.xml中有以下属性(故意省略了主机和登录名)

代码语言:javascript
复制
<properties>
    <sonar.host.url></sonar.host.url>
    <sonar.login></sonar.login>
    <sonar.ws.timeout>300</sonar.ws.timeout>
</properties>

我有我的Jacoco插件的以下配置。

代码语言:javascript
复制
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>prepare-package</phase>
             <goals>
                 <goal>report</goal>
             </goals>
        </execution>
    </executions>
</plugin>

我的目标位于默认位置jacoco.exec /Jacoco.exec,并且SonarQube可以正确地找到它。

相关版本

Maven 3.2.2

Maven编译器3.5.1

Maven Surefire 2.19.1

Java 1.8.0_11

SonarQube服务器5.6

Jacoco Maven插件0.7.7.201606060606

Mac OS X 10.10.5

提前感谢您的帮助!

--编辑

我正在运行以下maven命令

mvn clean package

mvn sonar:sonar

EN

回答 1

Stack Overflow用户

发布于 2017-04-13 02:40:49

我关注了here这篇文章,它只对我有效,我只更新了代码以反映最新的JaCoCo插件版本

代码语言:javascript
复制
    <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.9</version>
    </dependency>

并将JaCoCo代理添加到我的POM插件中:

代码语言:javascript
复制
    <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                 <executable>true</executable>
            </configuration>
        </plugin>
        <!-- JaCoCo configuration -->
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.9</version>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>default-report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

并运行以下maven命令(在Jenkins中):

代码语言:javascript
复制
clean deploy $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL

我有SonarQube 6.3.0.19869,Jenkins 2.46.1,Jenkins 2.15.1中的Maven集成插件(较旧的插件导致了我堆栈中的SonarQube问题)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37875399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档