zetafish
zetafish

Reputation: 2412

Setup sonar-runner for multiple java projects

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?

Upvotes: 19

Views: 27761

Answers (3)

Christoph Grimmer
Christoph Grimmer

Reputation: 4313

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.

Upvotes: 23

Olivier
Olivier

Reputation: 3495

Since 2.0, Sonar runner works with multiple modules, as described here

Upvotes: 0

Mark O'Connor
Mark O'Connor

Reputation: 77961

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.

Upvotes: 12

Related Questions