郑州企业网站建站,手机电脑网站 建站程序,济南1951年建站,自己做网站导航页这里写目录标题 第一节 SonarQube1.1 简介1.2 四个组成部分1.2.1 SonarQube服务器1.2.2 SonarQube数据库1.2.3 插件1.2.4 Scanner 1.3 工作流程 第二节 SonarQube的安装2.1 安装2.2 插件 第三节 P3C规范3.1 简介3.2 SonarQube 配置 P3C规范3.3 IDEA配置 P3C规范 第四节 Maven项… 这里写目录标题 第一节 SonarQube1.1 简介1.2 四个组成部分1.2.1 SonarQube服务器1.2.2 SonarQube数据库1.2.3 插件1.2.4 Scanner 1.3 工作流程 第二节 SonarQube的安装2.1 安装2.2 插件 第三节 P3C规范3.1 简介3.2 SonarQube 配置 P3C规范3.3 IDEA配置 P3C规范 第四节 Maven项目代码检查4.1 根项目POM.xml修改4.2 代码扫描提交 第五节 nodejs项目代码检查 第一节 SonarQube
1.1 简介
SonarQube是一款静态代码质量分析工具支持Java、Python、PHP、JavaScript、CSS等25种以上的语言而且可以集成在IDEA、Jenkins、GIt等服务中方便随时查看代码质量分析报告。支持的语言
SonarQube通过配置的代码分析规则从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目风险等级从A~E划分为5个等级同时SonarQube可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量SonarQube还设置了质量阈通过设置的质量阈评定此次提交分析的项目代码是否达到了规定要求。 其他的静态代码分析工具PMDCheckStyleFindBug 1.2 四个组成部分
1.2.1 SonarQube服务器
Web服务供开发者管理者浏览质量快照和配置SonarQube实例搜索服务基于ElasticSearch的Search Server从UI进行后退搜索计算引擎服务负责处理代码分析报告并将其保存在SonarQube数据库中
1.2.2 SonarQube数据库
SonarQube实例的配置安全性插件设置等项目视图等的质量快照
1.2.3 插件
多个SonarQube插件可能包括语言SCM集成身份验证和管理插件
1.2.4 Scanner
一个或多个SonarQube Scanners可以与CI服务进行集成 1.3 工作流程 开发人员的代码在自己的IDE和使用SonarLint运行局部分析 开发人员推代码到Git服务器 持续集成服务器触发自动构建和SonarQube扫描仪的运行SonarQube分析所需的执行。 分析报告被发送到SonarQube服务器进行处理。 SonarQube服务器处理和存储分析报告导致SonarQube数据库并显示结果在UI中。 开发者审核评论问题减少他们的技术债务问题。 团队负责人收到的分析报告。 OPS使用API从SonarQube自动化配置和提取数据。 第二节 SonarQube的安装
2.1 安装
我们采用dockerdocker-compose的方式进行安装
version: 3
services:sonarqube:image: sonarqube:9.9.0-communityports:- 9000:9000networks:- sonarnetrestart: alwaysprivileged: truevolumes:- /docker/sxhm/sonarqube/conf/sonar.properties:/opt/sonarqube/conf/sonar.properties- /docker/sxhm/sonarqube/pdf-files:/opt/sonarqube/pdf-files- /docker/sxhm/sonarqube/extensions/plugins:/opt/sonarqube/extensions/pluginsenvironment:- TZAsia/Shanghai- SONARQUBE_JDBC_USERNAMExxxx- SONARQUBE_JDBC_PASSWORDxxxx- SONARQUBE_JDBC_URLjdbc:postgresql://postgresdb:5432/sonarpostgresdb:image: postgres:bullseyeports:- 5432:5432networks:- sonarnetenvironment:TZ: Asia/ShanghaiPOSTGRES_USER: xxxxxPOSTGRES_PASSWORD: xxxxxPOSTGRES_DB: sonarvolumes:- /docker/sxhm/sonarqube/postgresql/data:/usr/postgres/data- /etc/localtime:/etc/localtime:ro
networks:sonarnet:driver: bridge
2.2 插件
下载需要的插件放到挂载目录下/docker/sxhm/sonarqube/extensions/plugins 下 重启docker容器
sonar-pdf-pluginsonar-pmdsonar-pmd-p3c
第三节 P3C规范
3.1 简介
源自《阿里巴巴Java编码指南》该指南汇集了阿里巴巴集团技术团队多年来的最佳编程实践。大量的Java编程团队对项目中的代码质量提出了苛刻的要求因为我们鼓励重用和更好地理解彼此的程序。我们在过去看到过许多编程问题。例如有缺陷的数据库表结构和索引设计可能会导致软件体系结构缺陷和性能风险。另一个例子是难以维护的混乱代码结构。此外没有身份验证的易受攻击的代码容易受到黑客的攻击。
https://github.com/alibaba/p3c
3.2 SonarQube 配置 P3C规范
首先需要登录 sonarqube 管理员账号然后在 Marketplace 中搜索“pmd”并安装。
安装完成后在 Quality Profiles 中选择“Sonar way”规则集然后点击“Activate more rules”按钮搜索“p3c”并勾选相应规则点击“Activate”即可。
这样就完成了在 sonarqube 中集成阿里 P3C 规则的操作。
3.3 IDEA配置 P3C规范
安装插件“Alibaba Java Coding Guidelines”即可
第四节 Maven项目代码检查
4.1 根项目POM.xml修改 propertiessonar.host.urlhttp://10.10.10.108:9000/sonar.host.urlsonar.plugin.version3.4.0.905/sonar.plugin.versionsonar.projectKey${project.groupId}:${project.artifactId}/sonar.projectKeysonar.moduleKey${project.artifactId}/sonar.moduleKeysonar.projectName${project.artifactId}/sonar.projectNamesonar.loginxxxx/sonar.loginsonar.passwordxxxxx/sonar.password/propertiesbuildplugins!--sonar 代码扫描插件--plugingroupIdorg.sonarsource.scanner.maven/groupIdartifactIdsonar-maven-plugin/artifactIdversion${sonar.plugin.version}/version/plugin/plugins/build确保项目使用的maven setting.xml 文件中未配置任何关于sonar的配置项 4.2 代码扫描提交
mvn clean package sonar:sonar 也可以借助idea 的maven图形化界面 若出现编译问题 可先clean package 修改编译的环境如jdk11再执行sonar:sonar 第五节 nodejs项目代码检查
安装SonarScanner确保SonarQube服务器正在运行
# 下载
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip# 解压
unzip sonar-scanner-cli-4.6.2.2472-linux.zip# 配置环境变量
echo export PATH$PATH:/path/to/sonar-scanner-4.6.2.2472-linux/bin ~/.bashrc
source ~/.bashrc创建 sonar-project.properties
# 必要属性
sonar.projectKeyyour-project-key
sonar.projectNameyour-project-name
sonar.projectVersion1.0# 源代码位置
sonar.sources.
sonar.exclusions**/node_modules/**
sonar.languagejs
sonar.sourceEncodingUTF-8# 数据库认证
sonar.loginyour-sonarqube-login
sonar.passwordyour-sonarqube-password# SonarQube服务器
sonar.host.urlhttp://localhost:9000运行SonarScanner扫描项目 # 在项目根目录执行
sonar-scanner确保替换your-project-key、your-project-name、your-sonarqube-login和your-sonarqube-password为实际值并且设置正确的sonar.host.url。
这个过程会将Vue项目的代码扫描完毕并上传到SonarQube服务器进行分析。你可以在SonarQube的界面上查看扫描结果。