如何在SonarsQube扫描仪中为Jenkins设置sonar.projectBaseDir?

时间:2018-01-03 16:00:14

标签: sonarqube sonarqube-scan

我尝试使用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 = /家庭/ ftpdrop / COBOL / PROJECT1
  sonar.sources = SRC
  sonar.cobol.copy.directories = / copy

我尝试了以下方法将sonar.projectBaseDir属性设置为右侧模块(module2而不是module1):

    {li>

    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.settingssonar.projectBaseDir不兼容,请参阅Advanced SonarQube Scanner Usages

      

    属性project.settings可用于指定项目配置文件的路径(此选项与project.homesonar.projectBaseDir属性不兼容。)

  1. 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
    
  2. sonar.projectBaseDir as 其他参数

    但它不起作用。日志显示该属性配置了两次:

    /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选项。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,我必须将属性public class Test1 { public static void main(String[] args) { char[] randChar1 = new char[3]; char[] randChar2 = new char[3]; char sym = '<'; char[] charCombine = new char[6]; System.out.print("The string generated is: "); for (int i = 0; i < 3; i++) { Random r = new Random(); randChar1[i] = (char) (65 + r.nextInt(26)); System.out.print(randChar1[i]); randChar2[i] = (char) (97 + r.nextInt(26)); System.out.print(randChar2[i]); } System.out.println(); ArrayList<char[]> al = new ArrayList<>(); al.add(randChar1); al.add(randChar2); Sort(al, sym); } static void Sort(ArrayList<char[]> al3, char symA) { } } 添加为分析属性

<强>配置:

Sonar Scanner for Jenkins configuration

<强>日志:

sonar.projectBaseDir