title: Sonar properties files
body: <p>I have a project that has the following package structure</p>
  
  <pre><code>src/main/proj
      -com.company.package
          -appName
              -morepackages
  
          -appVersion2
              -morepackages
  
  sonar-runner.properties
  sonarBuild.sh
  sonar-runner-project2.properties
  sonarBuildProject2.sh
  </code></pre>
  
  <p>As it stands, with the default properties file i can run the sonar report and it will generate a review for the whole project</p>
  
  
  
  <pre class="lang-bash prettyprint-override"><code>sonar.projectKey=KEY
  sonar.projectName=PROJNAME
  sonar.projectVersion=1.0
  
  sonar.host.url=someurl
  
  #Path for sonar sources
  sonar.sources=src/main/java
  
  #Path for libraries
  sonar.libraries=target/lib/*.jar
  
  #Path for binaries
  sonar.binaries=target/classes
  
  #--------Default database
  sonar.jdbc.url=someurl
  sonar.jdbc.driver=com.mysql.jdbc.Driver
  
  #----- Global database settings
  sonar.jdbc.username=sonar
  sonar.jdbc.password=sonar
  
  #----- Default directory layout
  sonar.java.source=1.6
  sonar.java.target=1.6
  
  sonar.sourceEncoding=UTF-8
  </code></pre>
  
  <p>Ideally however I would like to separate the two reports so i have one for the original package and one for the appVersion2 package. Now - as mentioned above I have created a separate properties file for each. Should i just point <code>sonar.sources</code> to the respective packages for each job to analyse or is there a better way to do this all in one property file? </p>
  
  <p>Thanks</p>
  
  <p><strong><em>EDIT</em></strong></p>
  
  <p>My multi module attempt properties file looks as follows</p>
  
  <pre class="lang-bash prettyprint-override"><code>sonar.projectKey=rootkey
  sonar.projectName=rootname
  sonar.projectVersion=1.0
  sonar.host.url=rooturl
  sonar.sources=src/main/java/
  sonar.libraries=target/lib/*.jar
  sonar.modules=module1,module2
  sonar.sourceEncoding=UTF-8
  
  #----- Global database settings
  sonar.jdbc.username=user
  sonar.jdbc.password=pass
  
  sonar.java.source=1.7
  sonar.java.target=1.7
  
  
  #--------Default database
  sonar.jdbc.url=url
  sonar.jdbc.driver=com.mysql.jdbc.Driver
  
  
  module1.sonar.projectName=proja
  module2.sonar.projectName=projb
  
  module1.sonar.projectKey=projakey
  module2.sonar.projectKey=projbkey
  
  #Path for sonar sources
  module1.sonar.sources=src/main/java/app1code
  module2.sonar.sources=src/main/java/app2code
  
  #Path for binaries
  module1.sonar.binaries=target/classes/app1binaries
  module2.sonar.binaries=target/classes/app2binaries
  </code></pre>
  
  <p>I get an error in the output saying....</p>
  
  <pre class="lang-bash prettyprint-override"><code>Exception in thread "main" org.sonar.runner.RunnerException: org.sonar.runner.RunnerException: The base directory of the module 'module1' does not exist: patthtoapp/module1
      at org.sonar.runner.Runner.delegateExecution(Runner.java:288)
      at org.sonar.runner.Runner.execute(Runner.java:151)
      at org.sonar.runner.Main.execute(Main.java:84)
      at org.sonar.runner.Main.main(Main.java:56)
  Caused by: org.sonar.runner.RunnerException: The base directory of the module 'module1' does not exist: pathtoapp/module1
      at org.sonar.runner.internal.batch.SonarProjectBuilder.setProjectBaseDir(SonarProjectBuilder.java:279)
      at org.sonar.runner.internal.batch.SonarProjectBuilder.loadChildProject(SonarProjectBuilder.java:191)
      at org.sonar.runner.internal.batch.SonarProjectBuilder.defineChildren(SonarProjectBuilder.java:169)
      at org.sonar.runner.internal.batch.SonarProjectBuilder.generateProjectDefinition(SonarProjectBuilder.java:122)
      at org.sonar.runner.internal.batch.Launcher.execute(Launcher.java:58)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.sonar.runner.Runner.delegateExecution(Runner.java:285)
  </code></pre>