首页 » Web前端 » 代码反复率PHP技巧_团队代码质量这样治理甩掉落技能债务

代码反复率PHP技巧_团队代码质量这样治理甩掉落技能债务

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

docker search sonarqubedocker pull sonarqube:7.6-communitydocker run -d --name sonarqube \ -p 9000:9000 \ -e sonar.jdbc.username=root \ -e sonar.jdbc.password=123456 \ -e sonar.jdbc.url=jdbc:mysql://xxx:3306/sonar?useUnicode=true\&autoReconnect=true\&characterEncoding=utf8 \ sonarqube:7.6-communityGitLab安装(docker办法)

可以参照官方安装文档进行安装,本文略过:https://docs.gitlab.com/omnibus/docker/

Sonar GitLab Plugin 安装办法一:可以直接下载插件 sonar-gitlab-plugin-4.1.0-SNAPSHOT,放到 <sonarqube_install_dir>/extensions/plugins目录,重启 SonarQube 即可。
办法二:admin 登录 SonarQube(7.6-community为例),点击 配置 —> 运用市场 —> 搜索 ,输入 GitLab,在列表中点击安装,安装完毕后重启 SonarQube 即可。

SonarQube版本对应Sonar GitLab Plugin版本

代码反复率PHP技巧_团队代码质量这样治理甩掉落技能债务

GitLab添加统一认证账号

为了方便管理,须要在GitLab添加账号(如sonarQube),作为对接 SonarQube 的统一账户,为其授予项目/项目组开拓者权限(添加comment和注释行)。

代码反复率PHP技巧_团队代码质量这样治理甩掉落技能债务
(图片来自网络侵删)

利用sonarQube 登录GitLab,获取的User Token为下一步配置利用(不同版本略有差异,以下以两种版本为例)

Community Edition 11.11.0:User Settings —> Access Tokens —>Personal Access TokensGitLab Community Edition 8.7.2:User Settings —> Account —> Private TokenSonarQube配置

admin 登录 SonarQube(7.6-community为例),点击 配置 —> 通用配置 —> GitLab —> Reporting —> 配置 GitLab User Token 以及 GitLab url,其他配置默认即可。

GitLab url : GitLab 做事地址(如:https://gitlab.host.com)GitLab User Token :GitLab 上用户的 Token(上一步获取的User Token)gitlab-runner

gitlab-runner先容与安装配置略过。
编写gitlab-ci.yml,实现日常提交分支提交自动扫描检测代码(ci/sonar_preview.sh,自动检测并对commit添加注释 ),develop、release代码合并则上传检测报告(ci/sonar_analyze.sh ,或者阶段性分支上传检测报告,提交检测报告扫描每每耗时较长,在持续集成过程中,develop、release每次都提交报告也不大必要)。

Maven

ci/sonar_preview.sh

mvn --batch-mode verify sonar:sonar \ -Dsonar.host.url=http://host:port \ -Dsonar.login=xxx \ -Dsonar.password=xxx \ -Dsonar.analysis.mode=preview \ -Dsonar.java.binaries=target/sonar \ -Dsonar.gitlab.project_id=$CI_PROJECT_ID \ -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA \ -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME \ -Dmaven.test.skip=true if [ $? -eq 0 ]; then echo "sonarqube code-analyze-preview over."fi

ci/sonar_analyze.sh

mvn --batch-mode verify sonar:sonar \ -Dsonar.host.url=http://host:port \ -Dsonar.login=admin \ -Dsonar.password=xxx \ -Dsonar.issuesReport.html.enable=true \ -Dsonar.analysis.mode=publish \ -Dmaven.test.skip=trueif [ $? -eq 0 ]; then echo "sonarqube code-analyze over."fiGradle

集成sonarqube插件,添加task:

buildscript { dependencies { # 在此位置追加以下依赖行 classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1") }}# plugins段放置位置有要示,放在buildscript段前面会报错,放到文件最末端也报错,紧跟buildscript放置OK,别的位置没有偿试plugins { # 添加插件信息 id("org.sonarqube") version "2.7.1"}# 声明插件apply(plugin:"org.sonarqube")# 如果项目不存在嵌套的子项目,则以上配置即可# 如果项目存在嵌套的子项目,还要添加以下配置subprojects { # 在subprojects段中添加以下块内容 sonarqube { properties { property("sonar.sources", "src/main/kotlin") } }}

ci/sonar_preview.sh

gradle sonarqube \ -Dsonar.host.url=http://host:port \ -Dsonar.login=admin \ -Dsonar.password=admin \ -Dsonar.analysis.mode=preview \ -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA \ -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME \ -Dsonar.gitlab.project_id=$CI_PROJECT_ID -x testif [ $? -eq 0 ]; then echo "sonarqube code-analyze-preview over."fi

ci/sonar_analyze.sh

gradle sonarqube \ -Dsonar.host.url=http://host:port \ -Dsonar.login=admin \ -Dsonar.password=admin \ -Dsonar.issuesReport.html.enable=true \ -Dsonar.analysis.mode=publish \ -x testif [ $? -eq 0 ]; then echo "sonarqube code-analyze over."fi

gitlab-ci.yml:

stages: - build - build-deploysonar_preview: stage: build script: - ci/sonar_preview.sh except: - develop - /^release-.$/ - master tags: - meyours-cisonar_analyze: stage: build-deploy script: - ci/sonar_analyze.sh only: - develop - /^release-.$/ tags: - meyours-ci

gitlab CI/CD流程(来自Gitlab官方)

打消扫描的目录

在实际运用中,我们须要打消某些目录/文件扫描检测(如我们后端代码中jooq天生的实体类文件),以免构建韶光过长、花费资源,配置路径如下:

代表一个或多个字符

代表一个或多个目录

整合阿里JAVA开拓规约

下载插件 JAR 包,放到 SonarQube 所在做事器的 <SonarQube Home>\extensions\plugins 目录下,重启SonarQube做事。

登录 SonarQube 打开 质量配置(profiles)页,点击右上方的【创建】按钮,创建 p3c profiles:首次创建会跳转到代码规则配置页面,刚新建的 profile 是没有激活任何规则的,须要手动激活跳转到激活页面,搜索【p3c】,点击【批量修正】,激活所有 p3c 规则返回质量配置页,我们可以设置 p3c 为默认,点击激活更多规则将sonar way默认规则加入

插件下载地址:https://github.com/rhinoceros/sonar-p3c-pmd/releases/download/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar

流程与管理

规范

为代码编写可实行的单元测试用例,及时实行测试用例并获取代码覆盖率报告,且发布前代码覆盖率必须达到 x% 以上。
通过这套SonarQube代码质量系统,实时知道工程代码还有哪些待优化的部分以及技能债务。

详细操持

所有单元测试用例优先保障覆盖率,再关注测试结果验证技能债务须要清零,并纳入编码规范静态代码剖析对代码质量的标准应逐步提高:内部编码规范代码重复率不能高于 x%试行将 Sonar 中的项目代码质量评分纳入绩效考评范围

相关文章