首页主机资讯如何在Linux上使用Jenkins进行代码质量检查

如何在Linux上使用Jenkins进行代码质量检查

时间2025-11-26 23:11:05发布访客分类主机资讯浏览487
导读:在 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.urlsonar.sourceEncoding=UTF-8,供 Jenkins 调用。

二 安装与配置插件

  • Jenkins 管理界面 > 插件管理 安装:SonarQube PluginSonarQube Scanner for JenkinsCheckstyle PluginPMD PluginSpotBugs PluginGit 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 resultsPublish PMD analysis resultsPublish 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 的报告发布可按需启用。

五 运行与排错要点

  • 触发方式:在 构建触发器 中配置 轮询 SCMWebhook,确保每次提交自动触发质量检查。
  • 权限与安全:若 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
Jenkins在Linux中如何进行版本控制 Linux环境下Jenkins如何备份数据

游客 回复需填写必要信息