Sei sulla pagina 1di 24

Enrikus' Blog

{ Blog de un informtico }

SonarQube: instalacin y
configuracin
Hace poco que he empezado a usar SonarQube y la verdad es que me
estn gustando mucho las posibilidades que ofrece. En este post voy a
hablar acerca de esta herramienta y voy a comentar paso a paso el
proceso de instalacin y configuracin del mismo. El proceso de
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

anlisis lo dejar para otro post para no hacer demasiado largo este.
SonarQube es una plataforma para evaluar cdigo fuente. Es
software libre y usa diversas herramientas de anlisis esttico de
cdigo fuente como Checkstyle, PMD o FindBugs para obtener
mtricas que pueden ayudar a mejorar la calidad del cdigo de
nuestros programas. Adems, tiene soporte para ms de 20 lenguajes
de programacin entre los que se encuentran Java, C#, C / C++, PL /
SQL, Cobol, ABAP, Python, JavaScript

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

SonarQube cubre 7 ejes principales de la calidad del software y una


vez analizado un proyecto nos muestra informacin detallada sobre
la arquitectura y el diseo, comentarios de nuestro programa, cdigo
duplicado, reglas de programacin acordes con el lenguaje que
estemos utilizando, bugs potenciales y su posible solucin, datos
referentes a la complejidad del proyecto e incluso datos sobre pruebas
unitarias (si tenemos alguna), como nmero de pruebas unitarias
pasadas correctamente o porcentaje de cubrimiento de las mismas.

SonarQube est pensado para ofrecer un seguimiento a lo largo del


desarrollo y/o mantenimiento de un programa informtico y apoyar a
la mejora continua. Sin embargo, tambin puede ser utilizado para
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

realizar anlisis aislados y obtener informes acerca de nuestros


proyectos.

Pasos previos
Antes de comenzar con la instalacin y configuracin de SonarQube
hay que instalar una base de datos. SonarQube viene por defecto
configurado para utilizar H2, que es una base de datos embebida y
que solo est recomendada para pruebas. SonarQube es compatible
con varios sistemas gestores de bases de datos como MySQL 5.x,
Oracle 10g/ 11g, PostgreSQL 8.x/ 9.x y Microsoft SQLServer. En
nuestro caso realizaremos la instalacin utilizando MySQL 5.6, que
previamente deber estar instalado en el sistema.
Lo primero que hay que hacer es crear un nuevo esquema y un
usuario con permisos para crear, actualizar y eliminar objetos de este
esquema. En mi caso tanto el esquema como el usuario se van a
llamar sonarqube.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

El script SQL para crear el esquema y el usuario es el siguiente:


1
2
3
4
5

CREATE DATABASE sonarqube CHARACTER SET utf8 COLLATE


CREATE USER 'sonarqube' IDENTIFIED BY 'sonarqube';
GRANT ALL ON sonarqube.* TO 'sonarqube'@'%' IDENTIFIED
GRANT ALL ON sonarqube.* TO 'sonarqube'@'localhost'
FLUSH PRIVILEGES;

Un vez tengamos creado el esquema y el usuario podemos comenzar


con la instalacin de SonarQube.

Instalacin del Servidor Web de


SonarQube
1. Vamos a la pgina oficial de descarga SonarQube y descargamos la
ltima versin del servidor (SonarQube v4.0).
2. Descomprimimos el archivo .zip en C:\ para tenerlo fcilmente
accesible.
3. Editamos el archivo sonar.properties para configurar el acceso a la
base de datos. El archivo se encuentra en C:\sonarqube4.0\conf\sonar.properties. Dentro del archivo de configuracin hay
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

que comentar la siguiente lnea para no utilizar el SGBD de H2.


1

#sonar.embeddedDatabase.port=9092

Descomentamos las siguientes lneas y asignamos los siguientes


valores para indicar al servidor web de SonarQube qu base de datos
vamos a utilizar, los datos del usuario y contrasea de la base de
datos y la informacin del servidor web donde se ejecutar una vez
est instalado. Por defecto se ejecuta sobre localhost con el puerto
9000.
1
2
3
4
5
6
7
8
9
10

# DATABASE
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube
# WEB SERVER
sonar.web.host=localhost
sonar.web.port=9000

4. El ltimo paso consiste en ejecutar el servidor de SonarQube. En mi


caso voy a ejecutar la versin de 32 bits de Windows y la ruta es la
siguiente: C:\sonarqube-4.0\bin\windows-x86-32\StartSonar.bat.
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

La primera vez que arrancamos el servidor de SonarQube puede


tardar un par de minutos porque tiene que crear las tablas en la base
de datos. Si todo ha ido bien se debera mostrar un mensaje indicando
que el servidor est arrancado:

Ahora vamos a comprobar en nuestro navegador que SonarQube se


encuentra disponible, para ello vamos a http://localhost:9000/ y se
deber mostrar la pgina de inicio del servidor de SonarQube:

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Esto significa que ya tenemos nuestro servidor de SonarQube listo


para funcionar.

Instalacin del plugin para el lenguaje


de programacin
Antes de poder analizar el cdigo de nuestros proyectos con SonarRuner (cliente oficial de SonarQube) es necesario instalar en el
servidor el plugin para el lenguaje que queramos analizar.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Accedemos al servidor desde http://localhost:9000/ y nos logeamos


como administrador (admin/admin).
Vamos a Settings > Update Center y veremos que por defecto ya viene
instalado el plugin para Java. Se pueden instalar plugins para diversos
lenguajes o incluso actualizarlos a una versin ms reciente. Para ello
solo tenemos que hacer click en Available Plugins y seleccionar el
que queramos.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Instalacin y configuracin de SonarRunner


Una vez tengamos listo el servidor con los plugins necesarios es hora
instalar un cliente para poder analizar el cdigo. Para este tutorial
voy a utilizar Sonar-Runner que es el cliente oficial de SonarQube.
1. Vamos a la pgina oficial de descarga SonarQube y descargamos la
ltima versin del cliente (Sonar-Runner v2.3).
2. Descomprimimos el archivo .zip en C:\ para tenerlo fcilmente
accesible.
3. Para configurar Sonar-Runner tenemos que ir a C:\sonar-runner2.3\conf y editar el archivo sonar-runner.properties. Tenemos que
descomentar las siguientes lneas y completarlas con los datos de la
configuracin del servidor que hemos empleado en la instalacin del
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

mismo:
1
2
3
4
5
6
7
8
9

#----- Default SonarQube server


sonar.host.url=http://localhost:9000
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube
#----- Global database settings
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube

Aadimos una nueva variable del sistema llamada


SONAR_RUNNER_HOME con el directorio de instalacin:

Aadimos la ruta completa al path de Windows:

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Para comprobar si se ha aadido correctamente al path de Windows


abrimos un terminal y ejecutamos el comando sonar-runner h. Si
todo es correcto deberamos obtener la ayuda de Sonar-Runner:

Ya tenemos instalado y configurado tanto el servidor como el cliente


de SonarQube y podemos empezar a analizar nuestros proyectos.
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

de SonarQube y podemos empezar a analizar nuestros proyectos.


El proceso de anlisis de un proyecto lo podes encontrar en el
siguiente post.
Ms informacin en la web de SonarQube y en la documentacin
COMPRTELO:

28 diciembre, 2013

Ms

Enrikus

Software, Tutoriales

SonarQube

7 comentarios sobre SonarQube: instalacin


open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

7 comentarios sobre SonarQube: instalacin


y configuracin

Pingback: SonarQube: Instalacin y configuracin - Javier Alvarez


Caballero

Gonzalo Pazos
10 febrero, 2015 a las 18:19

Hola
buen post me sale que el servidor esta iniciado todo bien pero cuando
entro al localhost:9000
sale:
org.jruby.rack.RackInitializationException: no connection available
from arjdbc/jdbc/RubyJdbcConnection.java:517:in
`set_native_database_types
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord-jdbcadapter-1.1.3/lib/arjdbc/jdbc/connection.rb:61:in `initialize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord-jdbcopen in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

adapter-1.1.3/lib/arjdbc/jdbc/adapter.rb:31:in `initialize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord-jdbcadapter-1.1.3/lib/arjdbc/jdbc/connection_methods.rb:6:in
`jdbc_connection
from org/jruby/RubyKernel.java:2225:in `send
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:223:in `new_connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:245:in `checkout_new_connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:188:in `checkout
from org/jruby/RubyKernel.java:1517:in `loop
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:184:in `checkout
from jar:file:/C:/sonarqube-4.0/web/WEB-INF/lib/jruby-complete1.7.6.jar!/META-INF/jruby.home/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:183:in `checkout
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:98:in `connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_po
ol.rb:326:in `retrieve_connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_sp
ecification.rb:123:in `retrieve_connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_sp
ecification.rb:115:in `connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/migration.rb:440:in `initialize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/migration.rb:401:in `up
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/migration.rb:383:in `migrate
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

from C:/sonarqube-4.0/web/WEBINF/config/../lib/database_version.rb:62:in `upgrade_and_start


from C:/sonarqube-4.0/web/WEBINF/config/../lib/database_version.rb:74:in `automatic_setup
from C:/sonarqube-4.0/web/WEB-INF/config/environment.rb:236:in
`(root)
from org/jruby/RubyKernel.java:1096:in `load
from file:/C:/sonarqube-4.0/web/WEB-INF/lib/jruby-rack1.1.13.2.jar!/jruby/rack/rails/environment2.rb:1:in `(root)
from file:/C:/sonarqube-4.0/web/WEB-INF/lib/jruby-rack1.1.13.2.jar!/jruby/rack/rails/environment2.rb:25:in
`load_environment
from file:/C:/sonarqube-4.0/web/WEB-INF/lib/jruby-rack1.1.13.2.jar!/jruby/rack/rails_booter.rb:79:in `load_environment
quisiera saber como soluciono esto
RESPONDER

Luis Del Castillo


open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Luis Del Castillo


24 abril, 2015 a las 22:22

Hola buenas tardes.


A mi tambin me salia ese error, tienes que verificar que el archivo
sonar.properties este configurado correctamente segn la base de
datos a la cual te vas a conectar.
Yo utilice una base de datos Oracle 11g Express Edition y cuado
coloque la siguiente linea
sonar.jdbc.url: jdbc:oracle:thin:@localhost:1521/XE
en el archivo sonar.properties me funciono, ya no salio el error.
Cordialmente.
Luis.
RESPONDER

Ariana Infante
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

19 mayo, 2015 a las 23:21

Hola, buenas tardes


Luego que realizo todos los pasos para la instalacion de sonarqube y
ejecuto C:\sonarqube-4.0\bin\windows-x86-32\StartSonar.bat. arraca
y luego se cierra sin mostrar nada. Ingreso al http://localhost:9000/ y
no carga.
Me podrian ayudar!
Gracias de antemano.
RESPONDER

Leandro
7 agosto, 2015 a las 19:26

Para los que les sale el error:


org.jruby.rack.RackInitializationException: no connection available
from arjdbc/jdbc/RubyJdbcConnection.java:517:in
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

`set_native_database_types
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord- ETC.
Yo lo solucione asi:
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatemen
ts=true
Hay que configurar bien sonar.properties
RESPONDER

Wekmentor
15 marzo, 2016 a las 22:43

Muchas gracias por compartirlo. Me ha sido muy til el tutorial.


Felicidades por el blog!!
RESPONDER
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

carlospq
23 junio, 2016 a las 11:55

Gracias por compartir este tutorial. Usndolo como gua he instalado


el Sonar en Ubuntu 14.04
RESPONDER

Deja un comentario
Tu direccin de correo electrnico no ser publicada. Los campos obligatorios estn
marcados con *
COMENTARIO

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

NOMBRE *

CORREO ELECTRNICO *

WEB

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

TRES

= 3

PUBLICAR COMENTARIO

Recibir un email con los siguientes comentarios a esta entrada.


Recibir un email con cada nueva entrada.

ANTERIOR

Hola mundo!

SIGUIENTE

Aadir un favicon personalizado en


WordPress
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Creado con WordPress

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Potrebbero piacerti anche