Vous êtes sur la page 1sur 10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

Enrikus'Blog
{Blogdeuninformtico}

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 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

http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

1/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

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 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.
El script SQL para crear el esquema y el usuario es el siguiente:
1

CREATEDATABASEsonarqubeCHARACTERSETutf8COLLATEutf8_general_ci;

http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

2/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

2
3
4
5

CREATEUSER'sonarqube'IDENTIFIEDBY'sonarqube';
GRANTALLONsonarqube.*TO'sonarqube'@'%'IDENTIFIEDBY'sonarqube'
GRANTALLONsonarqube.*TO'sonarqube'@'localhost'IDENTIFIEDBY
FLUSHPRIVILEGES;

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:\sonarqube-4.0\conf\sonar.properties.
Dentro del archivo de configuracin hay 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

#MySQL5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=

#WEBSERVER
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.
La primera vez que arrancamos el servidor de SonarQube puede tardar un par
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

3/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

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:

Esto significa que ya tenemos nuestro servidor de SonarQube listo para


funcionar.

Instalacin del plugin para el lenguaje de


programacin
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

4/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

Antes de poder analizar el cdigo de nuestros proyectos con Sonar-Runer (cliente


oficial de SonarQube) es necesario instalar en el servidor el plugin para el
lenguaje que queramos analizar.
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.

Instalacin y configuracin de Sonar-Runner


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 SonarRunner que es el cliente oficial de SonarQube.
1. Vamos a la pgina oficial de descarga SonarQube y descargamos la ltima
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

5/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

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-runner-2.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 mismo:
1
2
3
4
5
6
7
8
9

#DefaultSonarQubeserver
sonar.host.url=http://localhost:9000

#MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true

#Globaldatabasesettings
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:

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:
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

6/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

Ya tenemos instalado y configurado tanto el servidor como el cliente 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:

Ms

28diciembre,2013 Enrikus Software,Tutoriales SonarQube

5 comentarios sobre SonarQube: instalacin y configuracin

Pingback: SonarQube: Instalacin y configuracin - Javier Alvarez Caballero

Gonzalo Pazos
10febrero,2015alas18:19

Hola
buen post me sale que el servidor esta iniciado todo bien pero cuando entro al
localhost:9000
sale:
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

7/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

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-jdbc-adapter1.1.3/lib/arjdbc/jdbc/connection.rb:61:in `initialize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord-jdbc-adapter1.1.3/lib/arjdbc/jdbc/adapter.rb:31:in `initialize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord-jdbc-adapter1.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_pool.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_pool.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_pool.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_pool.rb:184:in
`checkout
from jar:file:/C:/sonarqube-4.0/web/WEB-INF/lib/jruby-complete-1.7.6.jar!/METAINF/jruby.home/lib/ruby/1.8/monitor.rb:191:in `mon_synchronize
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in
`checkout
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in
`connection
from C:/sonarqube-4.0/web/WEB-INF/gems/gems/activerecord2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.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_specification.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_specification.rb:
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

8/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

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
from C:/sonarqube-4.0/web/WEB-INF/config/../lib/database_version.rb:62:in
`upgrade_and_start
from C:/sonarqube-4.0/web/WEB-INF/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

Luis Del Castillo


24abril,2015alas22: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.
http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

9/10

25/8/2015

SonarQube:instalacinyconfiguracin|Enrikus'Blog

Luis.

Ariana Infante
19mayo,2015alas23: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.

Leandro
7agosto,2015alas19:26

Para los que les sale el error:


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- ETC.
Yo lo solucione asi:
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
Hay que configurar bien sonar.properties

Creado con WordPress

http://enrikusblog.com/sonarqubeinstalacionyconfiguracion/

10/10

Vous aimerez peut-être aussi