首页 > 其他分享 >sonarqube 项目内maven插件使用

sonarqube 项目内maven插件使用

时间:2024-09-03 11:14:57浏览次数:5  
标签:插件 plugin sonarqube maven sonar org

一般建议保持项目jdk和sonarqube的jdk版本呢一致,sonarqube支持的版本最低的也是jdk11,如果要使用sonarqube,建议项目尽量上jdk17。

sonar maven插件依赖

 <!-- 属性配置-->
    <properties>
        
        <!--sonarqube配置-->
        <sonar.projectKey>TestExample</sonar.projectKey>
        <sonar.host.url>http://10.109.38.98:9000</sonar.host.url>
        <!--token-->
        <sonar.login>sqa_c353b5531044ea9421a00907a6b6b6fd768cea3b</sonar.login>
        <!--代码覆盖率需要排除的目录-->
        <sonar.coverage.exclusions>
            **/advice/**,
            **/annotation/**
        </sonar.coverage.exclusions>
    </properties>


    <build>
        <plugins>
            <!-- 打包 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.12.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依赖的包都打包到生成的Jar包中 -->
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <attach>false</attach>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


            <!--JaCoCo覆盖率测试报告生成工具-->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.11</version>
                <configuration>
                    <!--包含的类-->
                    <includes>
                        <!--相对src/main/java下的目录-->
                        <include>com/**</include>
                    </includes>
                    <!-- rules裏面指定覆蓋規則 -->
                    <rules>
                        <rule implementation="org.jacoco.maven.RuleConfiguration">
                            <element>BUNDLE</element>
                            <limits>  
                                <!-- 指定方法覆盖率到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>METHOD</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定分支覆盖到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>BRANCH</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定类覆盖到100% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>CLASS</counter>
                                    <value>MISSEDCOUNT</value>
                                    <maximum>0</maximum>
                                </limit>
                            </limits>
                        </rule>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <id>pre-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>post-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!--jacoco生成覆盖率报告需要依赖surefire,没有它jacoco生成的报告覆盖率都会是0-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.2.5</version>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                    <skipTests>false</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                    <forkCount>1</forkCount>
                    <reuseForks>true</reuseForks>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>3.2.5</version>
                    </dependency>
                </dependencies>
            </plugin>

            <!--sonarqube maven 插件,它的覆盖率依赖jacoco,没有jacoco就只会又静态代码扫描没有覆盖率的门禁 -->
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.11.0.3922</version>
            </plugin>

        </plugins>
    </build>

运行sonar

mvn clean compile sonar:sonar,

或者 mvn clean verify sonar:sonar也行

覆盖率为0的几种情况

参考:https://www.cnblogs.com/cxygg/p/18394185

标签:插件,plugin,sonarqube,maven,sonar,org
From: https://www.cnblogs.com/cxygg/p/18394187

相关文章

  • sonarqube覆盖率是0的几种原因
    jacoco没有正常生成报告sonarqube显示的单元测试覆盖率,依赖于junit,如果要在maventest的过程中生成覆盖率需要使用jacoco。sonarqube的覆盖率是读取的jacoco生成的信息,所以第一步是检查jacoco是否有正常的生产测试报告检查target\site\jacoco目录下面是否有报告生成,然后查找jac......
  • 关于maven
    1、依赖范围① complie默认范围,编译和运行时失效,打包的时候也会打包。② provided编译和测试有效、运行时无效,打包不打包。③runtime编译不生效、运行生效。④ test 编译和运行测试有效。实际运行不生效。2、依赖冲突调解① 第一原则:最短路径原则② 第二原......
  • react-hook-form 搭配 next-intl 国际化插件 处理form 表单错误
    useEffect(()=>{ form.clearErrors() if(state&&state.data){ router.push('/') } //后台错误 if(state&&state.errorMessage){ //showErrorToast(t(state.errorMessage)) showErrorToast(state.errorMessage) } ......
  • 博客园-awescnb插件-geek皮肤优化-表情配置
    ......
  • 用了这款 Notion 汉化插件,我的工作效率提升了300%
    作者:苍何,前大厂高级Java工程师,阿里云专家博主,2023年实力新星,土木转码,现任部门技术leader,专注于互联网技术分享,职场经验分享。大家好,我是苍何。今天给大家分享Notion汉化插件,提高工作效率。Notion,作为一款广受欢迎的笔记和组织工具,已在全球范围内获得了广泛的用户基础。然而......
  • 实现AI带货直播需要开发一个插件!
    在电商行业蓬勃发展的今天,直播带货已成为商家们竞相追逐的新风口,而随着人工智能(AI)技术的日益成熟,将AI融入带货直播,无疑将为这一领域带来革命性的变化。直播带货以其独特的互动性和即时性,迅速赢得了消费者的青睐,然而,传统直播带货模式在商品推荐、互动引导等方面仍存在一定的局限性......
  • 视频号的视频怎么下载?教你用油猴(Tampermonkey)插件来下载视频
     这个视频号的下载方法支持手机和电脑,请看教程一、环境准备  微信文件传输助手网页版 :微信文件传输助手网页版1.edge(电脑端)下载TampermonkeyTampermonkey-MicrosoftEdgeAddons安装后右上角扩展会有一个黑色的图标​​​2.手机端安装浏览器苹果端:亚瑟浏览器......
  • CentOS 8 安装 jenkins、gitlab-ce、SonarQube教程
    一、在CentOS8上安装jenkins在一台CentOS8(IP:10.0.0.81RAM:2GB)上安装jenkins-2.452.41、配置Java环境从Jenkins-2.357版本开始JDK最低要求java11,而jenkins-2.346.1是最后一个支持java1.8的版本。点击查看代码1.先查看系统是否自带了jdk,若有输出信息,批量卸载......
  • 第4种打整包插件(二),springboot类加载器
    最近在搞一个动态加载外部jar包,进行动态加载和调用的项目,外部包的类加载用继承于URLClassLoader类加载器的一个自定义类加载器,为的是打破原始的双亲委派机制。项目内部类就用项目自己的默认类加载器,最开始用的是ClassLoader.getSystemClassLoader()即AppClassLoader。ok,然后再IDE......
  • 六,Spring Boot 容器中 Lombok 插件的详细使用,简化配置,提高开发效率
    六,SpringBoot容器中Lombok插件的详细使用,简化配置,提高开发效率@目录六,SpringBoot容器中Lombok插件的详细使用,简化配置,提高开发效率1.Lombok介绍2.Lombok常用注解[email protected]@[email protected]@AllArgsConstructor2.5@NoArgsConstructor3.在idea中安装......