jenkins - SonarScanner 在 Jenkins 工具中配置,但 '${scannerHome}' 未被识别为内部或外部命令
问题描述
我想在我的 Jenkinsfile 中使用 SonarQube
pipeline{
agent any
stages{
stage('build'){
steps{
// invoke command to build with maven
bat 'mvn clean install'
}
}
stage('SonarQube') {
environment {
scannerHome = tool 'SonarQubeScanner'
}
steps {
withSonarQubeEnv('SonarQube') {
bat '${scannerHome}/bin/sonar-scanner.bat'
}
}
}
}
}
这是我的 SonarQube 服务器
这是 SonarScanner
步骤有什么问题withSonarQubeEnv
:
withSonarQubeEnv('SonarQube') {
bat '${scannerHome}/bin/sonar-scanner.bat'
}
我总是出错
'${scannerHome}' 未被识别为内部或外部命令,
解决方案
我看到两个问题:
- 您没有向
SonarQubeScanner
工具添加任何安装程序(仅选中复选框) - 代码不正确
不评估单引号(按原样处理)。代表着:
def value = 'ABC'
println '${value}/bin/sonar-scanner.bat'
打印${value}/bin/sonar-scanner.bat
。您必须使用双引号:
def value = 'ABC'
println "${value}/bin/sonar-scanner.bat"
打印ABC/bin/sonar-scanner.bat
。
代码应等于:
withSonarQubeEnv('SonarQube') {
bat "${scannerHome}/bin/sonar-scanner.bat"
}
推荐阅读
- sql - 在立即执行中使用授权管理选项时如何解决错误
- ios - 从 SecKeyGeneratePair 创建的公钥和私钥是否过期?(iOS - 斯威夫特)
- javascript - Postman Native App 发送的 Cookie 未在浏览器中设置
- html - Backspace 无法清除 input type='email' 上的值
在电子邮件字段中 - java - 如何从输入中仅计算 4 个整数 - JAVA
- postgresql - 无法远程连接到 PostGIS docker
- swift - Swift:仅发布特定的可编码对象
- angular - 使用 Angular 的 React 风格的受控组件(绑定输入)
- nlp - 如何使用转换器模型改进代码以加快词嵌入?
- c# - SignalR KeepAlive 值“此值不得超过 DisconnectTimeout 值的 1/3”是什么意思?