如何在 Jenkins 的 SonarQube 扫描仪中设置 sonar.projectBaseDir?
How to set sonar.projectBaseDir in SonarQube Scanner for Jenkins?
我尝试使用 SonarQube Scanner 插件(2.5 版)在 Jenkins 中分析一个多模块项目的一个模块。不幸的是,Jenkins 选择了错误的模块作为工作目录。
在这种特殊情况下,我可以更改模块的顺序,但通常(不止一个被分析的模块)它不起作用。所以我想解决 属性 sonar.projectBaseDir
的问题,请参阅 Advanced SonarQube Scanner Usages:
Alternate Analysis Directory
If the files to be analyzed are not in the directory where the analysis starts from, use the sonar.projectBaseDir
property to move analysis to a different directory. E.G. analysis begins from jenkins/jobs/myjob/workspace
but the files to be analyzed are in ftpdrop/cobol/project1
.
sonar-project.properties
sonar.projectBaseDir=/home/ftpdrop/cobol/project1
sonar.sources=src
sonar.cobol.copy.directories=/copy
我尝试了以下方法来将 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 插件中的一个错误,因为 project.settings
与 sonar.projectBaseDir
不兼容,参见 Advanced SonarQube Scanner Usages:
The property project.settings
can be used to specify the path to the project configuration file (this option is incompatible with the project.home
and sonar.projectBaseDir
properties).
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
选项。
我找到了解决方案,我必须添加 属性 sonar.projectBaseDir
作为 分析属性 。
配置:
日志:
/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=./../module2
我尝试使用 SonarQube Scanner 插件(2.5 版)在 Jenkins 中分析一个多模块项目的一个模块。不幸的是,Jenkins 选择了错误的模块作为工作目录。
在这种特殊情况下,我可以更改模块的顺序,但通常(不止一个被分析的模块)它不起作用。所以我想解决 属性 sonar.projectBaseDir
的问题,请参阅 Advanced SonarQube Scanner Usages:
Alternate Analysis Directory
If the files to be analyzed are not in the directory where the analysis starts from, use the
sonar.projectBaseDir
property to move analysis to a different directory. E.G. analysis begins fromjenkins/jobs/myjob/workspace
but the files to be analyzed are inftpdrop/cobol/project1
.sonar-project.properties
sonar.projectBaseDir=/home/ftpdrop/cobol/project1
sonar.sources=src
sonar.cobol.copy.directories=/copy
我尝试了以下方法来将 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 插件中的一个错误,因为
project.settings
与sonar.projectBaseDir
不兼容,参见 Advanced SonarQube Scanner Usages:The property
project.settings
can be used to specify the path to the project configuration file (this option is incompatible with theproject.home
andsonar.projectBaseDir
properties).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
选项。
我找到了解决方案,我必须添加 属性 sonar.projectBaseDir
作为 分析属性 。
配置:
日志:
/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=./../module2