• 【Java】 Maven多模块项目上传到Sonar扫描问题合集


    上传到Soanr时,项目有单元测试数,但是覆盖率为0

    修改pom.xml

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.4.2</version>
                        <configuration>
                            <skipTests>false</skipTests>
                            <testFailureIgnore>true</testFailureIgnore>
                            <includes>
                                <include>**/*Test.java</include>
                            </includes>
                            <excludes>
                                <!--<exclude>**/Abstract*.java</exclude>-->
                                <!--<exclude>**/*Service.java</exclude>-->
                            </excludes>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>0.7.9</version>
                        <executions>
                            <execution>
                                <id>pre-test</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
    

    必要时带上参数

    clean cobertura:cobertura -Dcobertura.report.format=xml package -Dmaven.test.failure.ignore=true sonar:sonar -Dsonar.language=java
    

    多模块项目通过Jenkins构建扫描上传到Sonar时,代码覆盖率很低,只覆盖了单模块的代码,这时可以通过配置JaCoCo解决该问题。
    参考资料

    修改pom.xml

                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.9</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>
    

    通过clean org.jacoco:jacoco-maven-plugin:prepare-agent jacoco:report-aggregate install 可在target下生成jacoco-aggregate覆盖相关报告

    注:jacoco版本低于0.7.9 jacoco:report-aggregate参数可能不存在
    多模块项目整合覆盖率还可以指定report目录

     <properties>
            <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
            <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
            <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
     </properties>        
    
     <build>
             <pluginManagement>
                <plugins>
                    <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>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>report</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </pluginManagement>
     </build>
    
  • 相关阅读:
    论文画图问题
    迁移sql2005到sql2008r2
    JDBC复习要点总结
    巧用 MDC 打出漂亮的日志
    使用 LogCaptor 测试 Logging
    Spring3.0.4 学习与问题总结系列 1开场篇
    初探CSS
    VirtualBox VM下安装CentOS6.4 (高手略)
    How to build runnable JARs with Spring dependencies using Maven
    ARC135 简要题解
  • 原文地址:https://www.cnblogs.com/xcmelody/p/10961121.html
Copyright © 2020-2023  润新知