我尝试在空pom上建立分支。

$ mvn sonar:sonar -Dsonar.host.url=http://sonar.corp.tld  -Dsonar.login=5846e53_LOGIN_HASH_d7e04e819  -Dsonar.projectKey=out.projectkey -Dsonar.branch.name=apple


我得到了这个错误:

Parameter 'characteristic' must be a key-value pair with the format 'key=value'.


从Maven DEBUG日志中,我看到:

[DEBUG] 21:45:02.528 Upload report
[DEBUG] 21:45:03.459 POST 400 https://sonar.copr.tld/api/ce/submit?projectKey=our.projectkey&projectName=projName&characteristic=branch%253Dapple&characteristic=branchType%253DSHORT | time=928ms


在SonarQube服务器端,在日志中我们可以看到:

172.16.0.14 - - [06/Jul/2018:19:03:42 +0200] "POST /api/ce/submit?projectKey=our.projectkey&projectName=projName&characteristic=branch%253Dapple&characteristic=branchType%253DSHORT HTTP/1.1" 400 103 "-" "ScannerMaven/3.4.1.1168/3.5.0" "SERVER_ID"


声纳服务器:7.1

Maven版本3.5.4

而且我还尝试了最新的声纳Maven插件。

我们发现问题似乎是branch URL参数的双重编码的branchTypecharacteristics

有谁遇到过那样的人吗?

谢谢,
索尔特

最佳答案

我解决了问题。

背景信息:
我们的声纳服务器在httpS后面工作,并且apache将所有请求从http重定向到https

因此,好的Maven调用是:

$ mvn sonar:sonar -Dsonar.host.url=https://sonar.corp.tld -Dsonar.login=5846e53_LOGIN_HASH_d7e04e819 -Dsonar.projectKey=out.projectkey -Dsonar.branch.name=apple

区别是
-Dsonar.host.url=https://sonar.corp.tld

08-27 15:26