Sonar is made of 3 components:
- A Database that stores the configuration and results of quality analysis
- A Web Server that is used to navigate the results of the analyzes and make configuration
- A Client that will run source code analyzers to compute data on projects
Sonar supports several database engines you can choose amongst.
If you simply want to make a test or a demo, you can use Apache Derby as a database. Derby is shipped with Sonar and does not need any installation. Derby is not robust nor scalable and should not be used for production.
To use one of the other databases, you simply need to create a schema and provide permissions to create, update and delete objects. Tables and indexes will then be automatically created when launching Sonar for the first time. A sample scripts to create the schema in MySQL can be found in here.
Installing Sonar Server
Prior to the installation, check the requirements.
Download and unzip the distribution.
If you do not use the default embedded database, edit conf/sonar.properties to configure the database access. Templates are available for every supported database. Just uncomment them and comment the first four lines dedicated to derby.
- sonar.jdbc.url : the URL of the database
- sonar.jdbc.driver : the class of the driver
- sonar.jdbc.user : the username (default value is 'sonar')
- sonar.jdbc.password : the password (default value is 'sonar')
Example for MySQL:
For Oracle, copy the JDBC driver to /extensions/jdbc-driver/[YOUR DATABASE]/. Other drivers for supported database are already provided.
Starting Sonar Server
The default listen port is 9000, the default context path is / and Sonar listens by default to all network interfaces: '0.0.0.0'. Once launched, the Sonar web server is available on http://localhost:9000. Parameters can be changed into the file conf/sonar.properties. Here is an example to listen to http://localhost:80/sonar:
Execute the following script to start the server:
- On Linux/Mac OS: bin/<YOUR OS>/sonar.sh start
- On Windows: bin/windows-x86-32/StartSonar.bat
- Read "Installing on AIX, HPUX or Solaris" for other platforms
You can now browse to http://localhost:9000.
Advanced Installation Features
- Deploying Sonar on a JEE Server
- Running Sonar as a Service on Windows or Linux
- Running Sonar behind a Proxy
There are different kinds of client to launch analysis:
- Sonar Runner: recommended for non-Java projects, see installation and configuration guide.
- Maven: recommended for Java projects built with Maven, see installation and configuration guide.
- Ant Task: recommended for Java projects built with Ant, see installation and configuration guide.
- CI Engine: see Hudson/Jenkins plugin or Bamboo plugin or AnthillPro plugin. Note that other CI engines can be used even if there is no Sonar plugin available.