如何在没有Maven和Docker的情况下在Jenkins声明性管道中执行SonarQube扫描仪
SonarQube scanner是否支持没有maven和docker的BlueOcean管道插件,如果支持,脚本在Jenkins文件中如何工作 我是詹金斯和蓝海的新手,已经尝试了所有可能的基本方面 如果SonarQube插件确实支持声明性:如何在没有Maven和Docker的情况下在Jenkins声明性管道中执行SonarQube扫描仪,jenkins,sonarqube,sonarqube-scan,jenkins-blueocean,Jenkins,Sonarqube,Sonarqube Scan,Jenkins Blueocean,SonarQube scanner是否支持没有maven和docker的BlueOcean管道插件,如果支持,脚本在Jenkins文件中如何工作 我是詹金斯和蓝海的新手,已经尝试了所有可能的基本方面 如果SonarQube插件确实支持声明性: pipeline { agent any stages { stage('SonarQube analysis') { tools { sonarQube 'SonarQube Scanner 2.8'
pipeline {
agent any
stages {
stage('SonarQube analysis') {
tools {
sonarQube 'SonarQube Scanner 2.8'
}
steps {
withSonarQubeEnv('SonarQube Scanner') {
sh 'sonar-scanner'
}
}
}
}
}
我们不能说SonarQube扫描仪支持或不支持。BlueOcean是一个表示层,它显示阶段提供的数据(例如:日志) SonarQube扫描仪生成日志,以便BlueOcean可以显示日志。我不认为这种关系可以归类为“支持”
编辑: 您可以使用以下代码在声明性管道中执行分析:
pipeline {
agent any
stages {
stage('Build') {
steps {
def scannerHome = tool 'SonarQubeScanner3'
withSonarQubeEnv('SonarQube') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
}
}
您还可以在managejenkins中添加SonarQube服务器→ 配置系统→ SonarQube服务器
:
管理Jenkins中的SonarQube扫描器→ 全局工具配置→ 声纳QUBE扫描仪:
申请人姓名:
- 服务器必须与使用SONARQUBEENV的
中使用的服务器相同(在我的示例中,它等于“SonarQube”)
- 扫描仪工具必须与
工具中使用的工具相同(在我的示例中,它等于“SonarQubeScanner3”)
您还必须选中复选框
启用SonarQube服务器配置作为构建环境变量的注入
问题已经解决,只需在常规工具配置中检查工具位置,并在jenkins文件中给出路径和调用它即可
stage('PDNS-UI-Sonar'){
环境{
声纳扫描仪选项=“-Xmx2g”
}
台阶{
sh“pwd”
sh“/opt/sonar scanner/bin/sonar scanner-Dproject.settings=sonar project.properties”
}
}
谢谢,但问题是,如果BlueOcean能够显示日志,我们需要SonarQube的声明性语法脚本用于其Jenkins文件,正如我尝试过的,这里有6-8个不同的过程(上面分享)调用它,但两者都不起作用。正如我所写的,BuleOcean是一个Persentation层,您的问题与声明性管道或脚本化管道有关。感谢您的帮助,我尝试了与您建议的完全相同的过程,但Output出现了一个错误,请您帮助我:`java.lang.NullPointerExceptionorg.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:150)org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:133)是否确定SonaRube步骤产生错误?请编辑您的问题和所有重要数据(stacktrace.full pipeline script、配置屏幕截图等)。这几乎可以正常工作,您需要使用see脚本步骤(请参见此处:)并且不要忘记项目根目录下的sonar-project.properties文件