【发布时间】:2018-06-13 08:00:19
【问题描述】:
我尝试使用SonarQube Scanner 插件(2.5 版)分析 Jenkins 中多模块项目的一个模块。不幸的是,Jenkins 选择了错误的模块作为工作目录。
在这种特殊情况下,我可以更改模块的顺序,但通常(不止一个分析的模块)它不起作用。所以想解决sonar.projectBaseDir属性的问题,见Advanced SonarQube Scanner Usages:
备用分析目录
如果要分析的文件不在分析开始的目录中,请使用
sonar.projectBaseDir属性将分析移动到不同的目录。例如。分析从jenkins/jobs/myjob/workspace开始,但要分析的文件在ftpdrop/cobol/project1。sonar-project.properties
sonar.projectBaseDir=/home/ftpdrop/cobol/project1
sonar.sources=src
sonar.cobol.copy.directories=/复制
我尝试了以下方法将sonar.projectBaseDir 属性设置为正确的模块(module2 而不是module1):
-
sonar.projectBaseDir在sonar-project.properties文件中但它不起作用。
sonar-project.properties文件中的属性被忽略。日志显示该属性被 JVM 选项覆盖:/Users/test/jenkinsslave/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner_2.8/bin/sonar-scanner -X -e -Dsonar.host.url=http://sonarqube:9090 -Dproject.settings=/Users/test/jenkinsslave/workspace/Test/module2/sonar-project.properties -Dsonar.projectBaseDir=/Users/test/jenkinsslave/workspace/Test/module1我认为这是SonarQube Scanner插件的一个bug,因为
project.settings与sonar.projectBaseDir不兼容,见Advanced SonarQube Scanner Usages:属性
project.settings可用于指定项目配置文件的路径(该选项与project.home和sonar.projectBaseDir属性不兼容)。 -
sonar.projectBaseDir作为 JVM 选项但它不起作用。该属性被忽略。日志显示该属性已被覆盖:
/Users/test/jenkinsslave/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner_2.8/bin/sonar-scanner -X -e -Dsonar.host.url=http://sonarqube:9090 -Dsonar.projectBaseDir=/Users/test/jenkinsslave/workspace/Test/module1 -
sonar.projectBaseDir作为附加参数但它不起作用。日志显示属性配置了两次:
/Users/test/jenkinsslave/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner_2.8/bin/sonar-scanner -Dsonar.projectBaseDir=/Users/test/jenkinsslave/workspace/Test/module2 -X -e -Dsonar.host.url=http://sonarqube:9090 -Dsonar.projectBaseDir=/Users/test/jenkinsslave/workspace/Test/module1我认为这是SonarQube Scanner插件中的一个错误,因为如果已经有
sonar.projectBaseDir选项,它不应该添加这样的选项。
【问题讨论】: