Sonar Runner fails whenever sonar.sources isn't set for a module. This doesn't feel right. In particular, parent modules often don't have any sources. Nevertheless, sonar.sources must be set to an empty value, or Sonar Runner will fail.
The docs at http://docs.codehaus.org/display/SONAR/Analyzing+with+Sonar+Runner suggest the opposite: "A project that defines modules (or a module that defines sub-modules) cannot define a source code folder to be analyzed by Sonar."