jenkins 流水线sonar scanner
时间: 2025-01-02 18:40:44 浏览: 25
### 配置 Jenkins Pipeline 使用 SonarQube 执行静态代码分析
#### 插件安装
为了使 Jenkins 能够与 SonarQube 协同工作,在 Jenkins 上需先安装 `SonarQube Scanner` 插件。这可以通过访问 Jenkins 的管理界面并导航到 "Manage Plugins" 来完成,之后搜索并安装名为 `SonarQube Scanner for Jenkins` 的插件[^1]。
#### 设置全局工具配置
进入 Jenkins 系统设置中的 “Global Tool Configuration”,添加一个新的 SonarScanner 工具定义。这里要指定 SonarScanner 的版本和安装路径,如果选择了自动安装,则会在首次构建时由 Jenkins 自动下载所需资源[^2]。
#### 创建或编辑 Jenkinsfile
对于想要集成 SonarQube 分析的任务,应在项目的根目录创建或修改现有的 `Jenkinsfile` 文件来描述 CI/CD 流水线逻辑。下面是一个简单的例子展示如何编写 Groovy 语法的声明式管道脚本来调用 SonarScanner:
```groovy
pipeline {
agent any
environment {
SONAR_SCANNER_HOME = tool name: 'SonarScanner', type: hudson.plugins.sonar.SonarRunnerInstallation
}
stages {
stage('Build') {
steps {
sh './mvnw clean install' // 假设这是一个 Maven 构建命令
}
}
stage('Quality Gate Check with SonarQube') {
steps {
script {
def scannerHome = tool 'SonarScanner'
withEnv(["PATH+SONAR=${scannerHome}/bin"]) {
sh "${scannerHome}/bin/sonar-scanner \
-Dsonar.projectKey=my_project_key \
-Dsonar.sources=src/main/java \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=<your-token>"
}
}
}
}
}
post {
always {
junit '**/target/surefire-reports/*.xml'
archiveArtifacts artifacts: '**/target/*.jar', onlyIfSuccessful: true
}
}
}
```
此段代码展示了怎样利用环境变量设定 SonarScanner 的位置,并通过 shell 指令执行 sonar-scanner 命令来进行源码的质量检测。注意替换 `<your-token>` 和其他参数以匹配实际部署情况下的 SonarQube 实例地址及认证信息[^3]。
阅读全文
相关推荐

















