Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setup sonar-runner for multiple java projects

Tags:

java

sonarqube

I am trying to run sonar-runner to analyze multiple Java projects in one go. According to the documentation it is just a matter of creating a sonar-project.properties file for each project. But it is not clear to me where exactly I have to put these sonar-project.properties files.

I tried to add multiple .properties files in the $SONAR_RUNNER_HOME/conf folder but the runner does not seem to pick them up. It only sees the sonar-project.properties file.

Any suggestions on how to run sonar-runner for multiple projects?

like image 378
zetafish Avatar asked Dec 13 '11 10:12

zetafish


2 Answers

Actually it is quite simple to let the sonar runner analyze multiple projects as long as they are in the same file system. Just put a properties file in a directory that is not to far away from the projects. Then declare each of your projects in this properties file.

Lets assume you have 4 projects in dev/general/BasicStuff, dev/service/CoolStuff, dev/utility/UtilStuff and dev/display/FrameWorkStuff.

As described in hereWay #2 you create a file in dev which contains the line

sonar.modules=BasicStuff,CoolStuff,UtilStuff,FrameWorkStuff

And for each of the "modules" a line like

BasicStuff.sonar.projectBaseDir=general/BasicStuff
CoolStuff.sonar.projectBaseDir=service/CoolStuff

Inside the project directories you in turn create a file which contains the other needed information, e.g.

sonar.projectName=BasicStuff
sonar.sources=src

If you start sonar runner with the top level properties as target you get a comprehensive result which shows metrics across the projects as well as allowing you to drill into each of them.

Hope this was what you were looking for.

like image 130
Christoph Grimmer-Dietrich Avatar answered Nov 10 '22 08:11

Christoph Grimmer-Dietrich


The Sonar runner supports projects with multiple modules. It doesn't support the analysis of multiple projects in one invocation.

The Java runner needs to be run against each project, picking up the properties file in each project directory.

like image 12
Mark O'Connor Avatar answered Nov 10 '22 08:11

Mark O'Connor