从配置或命令行设置sonar.timemachine.period1是否有效?

时间:2017-02-17 19:18:36

标签: sonarqube sonar-runner sonarqube-scan

我正在尝试使用带有属性文件或命令行参数的Sonar Scanner在SonarQube 5.6.5中设置泄漏期,但我没有成功。

我想将sonar.timemachine.period1属性设置为特定版本,例如1.0.0,如解决方案2(使用sonar-project.properties)或解决方案3(使用命令行参数)一样,例如,-Dsonar.timemachine.period1=1.0.0Sonar runner, seeonly newly introduced issues的已接受答案。

以下是重现我的问题的方案。

  1. 使用sonar.projectVersion=1.0.0运行分析。
  2. 使用sonar.projectVersion=2.0.0sonar.timemachine.period1=1.0.0运行分析。
  3. 使用sonar.projectVersion=3.0.0sonar.timemachine.period1=1.0.0运行分析。
  4. 在第二次和第三次分析之后,我预计泄漏期为“自1.0.0”(如果我将SonarQube管理部分中的泄漏期手动设置为1.0.0,这是行为)。相反,对于第三次分析,泄漏期被设置为2.0.0

    我错过了什么?这是一个错误吗?

2 个答案:

答案 0 :(得分:2)

设置sonar.timemachine.period1通过'普通'属性是不够的,您需要通过REST Api设置属性 - 请注意您需要管理员权限。
使用Sonarqube Ant Task时出现同样的问题并为此目的创建了一个macrodef 见:
Sonarqube Wep API documentation
Sonarqube set leak period to specific version other than previous version

答案 1 :(得分:1)

Rebse是正确的,您必须使用API​​来设置sonar.timemachine.period1属性。我没有使用Ant。我使用了Bamboo的curl命令。

curl
-X POST 
-u MY_USERNAME:MY_PASSWORD 
-d resource=MY_PROJECT_KEY
-d id=sonar.timemachine.period1 
-d value=1.0.0
http://localhost:9000/api/properties