Parameters can be set in various places in Sonar. Here is the hierarchy of parameters:
- Global parameters, defined in the UI, will apply to all projects
- Project parameters, defined in the UI, will override global parameters
- Project parameters, defined in configuration file, will override the ones defined in the UI
- Command line parameters, defined at analysis time, will override any parameters
Here is a list of advanced parameters:
Sometimes, for security or other reasons, project sources must not be stored and displayed.
Encoding of source files. Example of values: UTF-8, MacRoman, Shift_JIS. This property can be replaced by the standard property 'project.build.sourceEncoding' in Maven projects.
It becomes quickly necessary to input historical data and to highlight some events. It is possible by going for example in a subversion tag and use the sonar.projectDate option. Format is yyyy-MM-dd, for example 2010-12-25. Be careful : when using this sonar.projectDate, no other Sonar analysis should run at the same time as this property doesn't support parallel runs.
The project version, usually overridden when sonar.projectDate is set
Version as defined in project
Sets the language of source code. By default, Sonar is using Java source code analysers. If a Sonar plugin allows to analyse another given language, the associated source code analysers can be activated with the property 'sonar.language'.
Exclude files from analysis. This property is usually set in the page Settings of the project. It's a comma separated list of wildcard patterns. Paths are defined from the source base directory. Example: com/mycompany/*/.java,**/*Dummy.java
Some project modules should not be analyzed and consolidated with global project measures, for instance samples, integration tests or generated code.
Comma-separated list of the modules to analyse, all other modules are automatically ignored. Be careful : the root project must be added to the list.
Manage SCM branches. Two branches of the same project are considered as different projects in Sonar.
Through the Sonar web interface, you can define as many quality profiles as you want and you can easily associate one of this quality profile to a given project. You can also make this association by using the property "sonar.profile". The value of this property overload any configuration made in the Sonar web interface.
Deactivate Java bytecode analysis. Since Sonar 2.0, the java bytecode is analyzed by Sonar in order to extract dependencies between packages and files. Those dependencies are used for instance to display the DSM (Dependency System Matrix). This bytecode analysis can be deactivated.
Run maven phase or goal prior to analysis. When Sonar needs a phase or maven goal to be executed prior to analysis, this parameter can be used. For example sonar.phase=generate-sources. This property is used only for Maven analysis.
sonar.host.connectTimeoutMs and sonar.host.readTimeoutMs
Increasing HTTP timeouts of requests to Sonar server. The Maven plugin executes some HTTP requests to the Sonar server. Two timeouts makes the call fail if the server connection is too slow. In such a case the timeouts can be increased from Maven properties.
respectively 30'000 and 60'000 milliseconds
Sonar has an embedded purge mechanism which is fairly powerful to avoid keeping useless data. This mechanism is using a minimum period during which a resource created should not be suppressed whatever its state. This is set by default to 12 hours and should not be changed. The only situation you could want to change this is in case a projects takes more than 12 hours to be analyzed by Sonar.
Java Version of the Source Code. This property is not used by the Sonar core but can be used by Java Sonar plugin like the PMD plugin.
1.4, 1.5, 1.6 since 2.10. 1.7 since 2.12
Target Java Version of the Source Code. This property is not used by the Sonar core but can be used by Java Sonar plugin like the Clover plugin.
1.4, 1.5 since 2.10
Enables to use Findbugs exclude filters
JDBC-Driver used by Sonar
User for the JDBC Connection
Password for the JDBC Connection
JDBC Connection URL
Dynamic analysis relates to unit tests. By default, those unit tests are executed but you can optionally decide to do only static analysis or to reuse existing reports which have been previously generated. Possible values are true, false, reuseReports.
The absolute or relative path of the surefire reports directory. Used only if sonar.dynamicAnalysis is reuseReports.
The absolute or relative path of the cobertura xml report file. Used only if sonar.dynamicAnalysis is reuseReports.
The absolute or relative path of the clover xml report file. Used only if sonar.dynamicAnalysis is reuseReports.
|sonar.showSql||Display all the SQL requests executed on batch side||false||since Sonar 2.14, Ant 1.4 & Sonar Runner 1.3|
|sonar.showSqlResults||Display the result of all SQL requests executed on batch side||false||since Sonar 2.14, Ant 1.4 & Sonar Runner 1.3|
|sonar.verbose||Activation of the DEBUG mode on batch side||false||since Sonar 2.12, Ant 1.3 & Sonar Runner 1.2|
Enables to pass definition of quality profiles to Sonar to run analysis. This option was removed as it is highly unstable.
from 1.11 to 2.5