如何在Linux上使用Jenkins进行代码质量检查
导读:在 Linux 上使用 Jenkins 进行代码质量检查 一 环境准备 安装 Jenkins(以 CentOS 为例):安装 Java 8、下载并启动 Jenkins WAR,或直接使用系统包管理器安装;启动后访问 http://<...
在 Linux 上使用 Jenkins 进行代码质量检查
一 环境准备
- 安装 Jenkins(以 CentOS 为例):安装 Java 8、下载并启动 Jenkins WAR,或直接使用系统包管理器安装;启动后访问 http://< 服务器IP> :8080 完成初始化。
- 安装 SonarQube 服务器(可选,用于集中质量门禁与可视化):准备 JDK 8、数据库(如 MySQL 5.7)、调整系统参数(如 vm.max_map_count=655360、文件描述符与进程数限制),解压并配置数据库连接,使用 sonar.sh 启动服务,默认端口 9000。
- 安装 SonarQube Scanner(CLI):下载解压,在 sonar-scanner.properties 中配置 sonar.host.url 与 sonar.sourceEncoding=UTF-8,供 Jenkins 调用。
二 安装与配置插件
- 在 Jenkins 管理界面 > 插件管理 安装:SonarQube Plugin、SonarQube Scanner for Jenkins、Checkstyle Plugin、PMD Plugin、SpotBugs Plugin、Git Plugin。
- 在 系统管理 > 系统配置 配置 SonarQube Servers(名称、URL、认证方式)。
- 在 系统管理 > 全局工具配置 配置 SonarQube Scanner(可自动安装或指定已安装路径)。
三 配置质量检查方式
- 方式 A:使用 SonarQube 集中分析(推荐)
- 在 SonarQube 生成 Token,在 Jenkins 的 SonarQube Server 配置中使用该 Token 或凭据。
- 在 Freestyle 项目 的构建步骤中使用 SonarQube Scanner 或通过 构建后操作 > Publish SonarQube analysis results 发布结果。
- 在 Pipeline 中使用 withSonarQubeEnv 调用扫描(示例见下文)。
- 方式 B:使用 Checkstyle / PMD / SpotBugs 生成报告并在 Jenkins 展示
- 在构建步骤中执行各工具命令,生成 XML 报告。
- 在 构建后操作 勾选 Publish Checkstyle analysis results、Publish PMD analysis results、Publish SpotBugs analysis results 并指定报告路径。
四 示例 Jenkinsfile
pipeline {
agent any
tools {
// 若已在“全局工具配置”命名了 SonarQube Scanner,请保持一致
sonarQube 'SonarQubeScanner'
}
stages {
stage('Checkout') {
steps {
checkout scm }
}
stage('Build &
Test') {
steps {
// 示例:Maven 项目
sh 'mvn -B clean verify'
}
}
stage('SonarQube Analysis') {
steps {
withSonarQubeEnv('SonarQube') {
sh '''
sonar-scanner \
-Dsonar.projectKey=my_project \
-Dsonar.projectName=my_project \
-Dsonar.projectVersion=1.0 \
-Dsonar.sources=src \
-Dsonar.java.binaries=target/classes \
-Dsonar.sourceEncoding=UTF-8
'''
}
}
}
stage('Quality Gate') {
steps {
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true
}
}
}
}
post {
always {
// 可选:发布 Checkstyle / PMD / SpotBugs 报告
// publishHTML(target: [reportDir: 'target/site/checkstyle', reportFiles: 'checkstyle.html', reportName: 'Checkstyle Report'])
// publishHTML(target: [reportDir: 'target/site/pmd', reportFiles: 'pmd.html', reportName: 'PMD Report'])
// publishHTML(target: [reportDir: 'target/site/spotbugs', reportFiles: 'index.html', reportName: 'SpotBugs Report'])
}
}
}
- 说明:上述示例包含 SonarQube 扫描 与 Quality Gate 等待;若不使用 Quality Gate,可移除该阶段。Checkstyle/PMD/SpotBugs 的报告发布可按需启用。
五 运行与排错要点
- 触发方式:在 构建触发器 中配置 轮询 SCM 或 Webhook,确保每次提交自动触发质量检查。
- 权限与安全:若 SonarQube 开启登录认证,需在 Jenkins 中使用 Token 或凭据;否则会报未授权错误。
- 报告路径:确保 Checkstyle/PMD/SpotBugs 报告生成路径与 Jenkins 中“构建后操作”配置一致。
- 系统资源:运行 SonarQube 需满足 Elasticsearch 要求,建议设置 vm.max_map_count=655360、提高文件描述符与进程数限制,避免因资源不足导致服务异常。
- 语言与构建:多语言项目可直接由 SonarQube Scanner 自动识别;若使用 Maven/Gradle,也可通过对应插件执行分析与报告收集。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux上使用Jenkins进行代码质量检查
本文地址: https://pptw.com/jishu/757221.html
