'.'执行 gradlew 脚本时,在 Jenkins 中不被识别为 Gradle 命令的内部或外部命令
'.' is not recognized as an internal or external command for Gradle command in Jenkins when gradlew script is executed
我尝试使用以下代码对 Jenkins 管道中的 Gradle 项目进行 运行 SonarQube 分析:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat "./gradlew sonarqube"
}
}
}
Jenkins 中安装了 Gradle 插件,但出现以下错误:
05:15:05 D:\*\*\*\*\*\*>./gradlew sonarqube
05:15:05 '.' is not recognized as an internal or external command,
您的代码中有两处不正确。在 Windows 台机器上,您必须:
- 在路径中使用反斜杠代替斜杠(
./command
→ .\command
)
- 执行为 Windows 编写的脚本(
gradlew
是 Unix 脚本,gradlew.bat
是 Windows 脚本)
此代码应该有效:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat '.\gradlew.bat sonarqube'
}
}
}
Gradle Wtapper默认提供了两个脚本gardlew
和gradlew.bat
。如果您的项目没有 gradlew.bat
文件,请在您的 Unix 机器上执行 ./gradlew wrapper
。将生成丢失的文件。
顺便说一句。当您使用 Gradlew Wrapper 时,您不需要 Jenkins Gradle 插件。当您想为作业提供 Gradle 安装时需要该插件,例如:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat "${tool(name: 'toolId', type: 'gradle')}\bin\gradle.bat sonarqube"
}
}
}
toolId
必须是 Jenkins 全局工具配置中使用的标识符,示例:gradle-6.X
、gradle-6.8.3
等
我尝试使用以下代码对 Jenkins 管道中的 Gradle 项目进行 运行 SonarQube 分析:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat "./gradlew sonarqube"
}
}
}
Jenkins 中安装了 Gradle 插件,但出现以下错误:
05:15:05 D:\*\*\*\*\*\*>./gradlew sonarqube
05:15:05 '.' is not recognized as an internal or external command,
您的代码中有两处不正确。在 Windows 台机器上,您必须:
- 在路径中使用反斜杠代替斜杠(
./command
→.\command
) - 执行为 Windows 编写的脚本(
gradlew
是 Unix 脚本,gradlew.bat
是 Windows 脚本)
此代码应该有效:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat '.\gradlew.bat sonarqube'
}
}
}
Gradle Wtapper默认提供了两个脚本gardlew
和gradlew.bat
。如果您的项目没有 gradlew.bat
文件,请在您的 Unix 机器上执行 ./gradlew wrapper
。将生成丢失的文件。
顺便说一句。当您使用 Gradlew Wrapper 时,您不需要 Jenkins Gradle 插件。当您想为作业提供 Gradle 安装时需要该插件,例如:
stage('SonarQube') {
withGradle {
withSonarQubeEnv('SonarQube Env') {
bat "${tool(name: 'toolId', type: 'gradle')}\bin\gradle.bat sonarqube"
}
}
}
toolId
必须是 Jenkins 全局工具配置中使用的标识符,示例:gradle-6.X
、gradle-6.8.3
等