相关内容    简体    繁体

代码质量检测(SonarQube)整合中文版+阿里P3C


代码质量检测(SonarQube)整合中文版+阿里P3C

简介

SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。
img

连续代码检查,sonar可以单独使用MavenGradle推送代码检查,当然也可以在ci引擎进行代码自动检查,如: JenkinsGit

服务端

安装

为了快速启动sonarqube实例,我们采用docker的方式。

sonarqube默认为英文版的,检查规则为自带的,我们这里采用中文汉化,另外java语言加入 阿里p3c规则。

使用git克隆项目:

git clone https://github.com/purgeteam/sonarqube-start
cd docker-start

sonar-docker-start.yml 模板如下:

# 汉化版+阿里p3c验证
version: "2"

services:
  sonarqube:
    image: sonarqube
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins
      - ./plugin/rhinoceros/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar:/opt/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
      - ./plugin/sonar-l10n-zh-plugin-1.16.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-1.16.jar

  db:
    image: postgres
    ports:
      - "5432:5432"
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - ./postgres/postgresql:/var/lib/postgresql
      - ./postgres/postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

使用docker-compose启动

docker-compose -d sonar-docker-start.yml up

默认会吧插件挂载进容器内部。

启动ok,查看控制台进行访问localhost:9000,默认账号密码:admin/admin

默认规则配置

虽然已经集成了阿里P3C,但是使用的还是默认规则,这里我们需要设置为指定规则。

以admin账号登陆

img

打开 质量配置profiles页,点击右上方的创建按钮,创建 p3c profiles

img

首次创建会跳转到代码规则配置页面,刚新建的 profile 是没有激活任何规则的,需要手动激活

img

我们需要为刚创建的 p3c profile 激活 p3c 规则,点击【激活更多规则】

跳转到激活页面,搜索p3c,如图,都是以[p3c]开头的规则。

img

批量修改->活动 p3c -> 应用 -> 成功

img

img

img

绑定规则成功后基本完成,我们返回质量配置,在java选择刚设置的p3c设置为默认。

img

配置阿里P3C已经完成。

Maven代码检查

sonarqube可以使用多种方式进行代码上传检查。
我们使用简单的Maven触发代码检查。

添加插件

在项目pom文件里添加sonar-maven-plugin插件。

<build>
    <plugins>

        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.6.0.1398</version>
        </plugin>

    </plugins>
</build>

服务器相关配置:

需要将<sonar.host.url>修改为之前搭建的sonarqube服务地址。

<!-- SonarQube代码质量检测 -->
<profiles>

    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
            <sonar.host.url>http://127.0.0.1:9000/</sonar.host.url>
        </properties>
    </profile>
    
</profiles>

触发检查

pom配置完成,先将代码进行构建使用Maven package 命令。

完成构建执行mvn sonar:sonar命令,也可以使用idea maven 可视化界面进行操作。

img

运行完成。

img

查看sonar报告

打开sonar服务页面127.0.0.1:9000

img

可以看到上传的项目列表,选择项目查看分析结果,项目健康状态等信息。

img

问题里可以看到相关的代码问题列表,打开单个则查看详情。

img

总结

当然我们只是使用了简单的Maven方式推送至SonarQube服务,当然也可以在ci引擎进行代码自动检查,如: JenkinsGit,自动化检查,有兴趣的小伙伴也可以了解下其他功能, SonarQube官网。

示例代码地址: sonarqube-start

作者GitHub:
Purgeyao 欢迎关注


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 阿里java代码检测工具p3c sonarqube增加阿里p3c规则扫描 阿里代码规范检查工具P3C sonar集成阿里p3c代码规范 sonarqube配置全指南,集成阿里巴巴p3c规范 Sonarqube代码质量检测笔记 Java代码质量检查checkstyle, pmd, cpd, p3c,findbugs, jacoco, sonarquebe以及和Jenkins集成 扩展阿里p3c实现自定义代码规范检查 阿里p3c(代码规范,eclipse插件、模版,idea插件) 扩展阿里p3c实现自定义代码规范检查
 
粤ICP备18138465号  © 2018-2024 CODEPRJ.COM

深圳SEO优化公司徐州网站建设设计推荐兰州网页制作哪家好凉山网站改版多少钱金昌网站优化推广哪家好自贡网站制作多少钱岳阳阿里店铺托管喀什关键词按天计费价格昌都百姓网标王报价池州企业网站改版价格成都企业网站改版多少钱鹤壁模板制作报价安阳阿里店铺运营推荐丹竹头网站关键词优化价格兰州百度标王价格广州企业网站改版哪家好伊犁百度关键词包年推广哪家好抚州网站推广哪家好驻马店百搜标王推荐黔西南网站推广工具多少钱海东阿里店铺运营哪家好成都企业网站设计枣庄百度seo报价桂林阿里店铺运营多少钱崇左模板网站建设马鞍山网站seo优化甘孜网站改版哪家好长春SEO按天扣费价格本溪百姓网标王推广推荐九江网站seo优化公司伊犁如何制作网站报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化