如何在Jenkins文件中为maven传递带有Credentials的sh命令



我总是在下面的Jenkinsfile代码的第6行(Dsonar.branch.name(中得到未找到的错误。如果我把第6行换成Dsonar.sources,它会说找不到源。

withCredentials([string(credentialsId: 'sonar_token', variable: 'token')]) {
sh"""
mvn sonar:sonar 
-Dsonar.projectKey=app 
-Dsonar.host.url=https://sonarqube.test.dev 
-Dsonar.login="917336a835asdf3528c863498"
-Dsonar.exclusions=$env.WORKSPACE/apps/core-app/src/test
-Dsonar.branch.name=$env.BRANCH_NAME
-Dsonar.sources=$env.WORKSPACE/apps/
-Dsonar.exclusions=$env.WORKSPACE/registry/apps/support-app/src/test
-Dsonar.exclusions=src/apitest/**,src/test/**
"""
}

Error below,
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:13 min
[INFO] Finished at: 2022-01-18T07:15:59Z
[INFO] ------------------------------------------------------------------------
+ -Dsonar.branch.name=feature/docker-build
/home/jenkins/agent/workspace/nt-registry_feature_docker-build@tmp/durable-d9e51887/script.sh: 3: -Dsonar.branch.name=feature/docker-build: not found

我使用了下面的函数,而不是sh命令。它按预期工作。

sonarResult=sonarqubeScan(serverName:"sonarqube",sonarScannerExecuti:"$env。WORKSPACE/sonar-scanner-4.0.0.1744-linux/bin/sonar scanner";,credentialsId:"sonar_token",来源:"&";,addlArgs:config.sonar.sonaAdditionalArguments)

最新更新