
SonarQube: instalación y configuración
SonarQube: instalación y configuración
Hace poco que he empezado a usar SonarQube y la verdad es que me están 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 instalación y configuración del mismo. El proceso de análisis lo dejaré para otro post para no hacer demasiado largo este.
SonarQube es una plataforma para evaluar código fuente. Es software libre y usa diversas herramientas de análisis estático de código fuente como Checkstyle, PMD o FindBugs para obtener métricas que pueden ayudar a mejorar la calidad del código de nuestros programas. Además, tiene soporte para más de 20 lenguajes de programación entre los que se encuentran Java, C#, C / C++, PL / SQL, Cobol, ABAP, Python, JavaScript
Hace poco que he empezado a usar SonarQube y la verdad es que me están 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 instalación y configuración del mismo. El proceso de análisis lo dejaré para otro post para no hacer demasiado largo este.
SonarQube es una plataforma para evaluar código fuente. Es software libre y usa diversas herramientas de análisis estático de código fuente como Checkstyle, PMD o FindBugs para obtener métricas que pueden ayudar a mejorar la calidad del código de nuestros programas. Además, tiene soporte para más de 20 lenguajes de programación entre los que se encuentran Java, C#, C / C++, PL / SQL, Cobol, ABAP, Python, JavaScript
SonarQube cubre 7 ejes principales de la calidad del software y una vez analizado un proyecto nos muestra información detallada sobre la arquitectura y el diseño, comentarios de nuestro programa, código duplicado, reglas de programación acordes con el lenguaje que estemos utilizando, bugs potenciales y su posible solución, datos referentes a la complejidad del proyecto e incluso datos sobre pruebas unitarias (si tenemos alguna), como número 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 informático y apoyar a la mejora continua. Sin embargo, también puede ser utilizado para realizar análisis aislados y obtener informes acerca de nuestros proyectos.
Pasos previos
Antes de comenzar con la instalación y configuración 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 instalación 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:
Pasos previos
Antes de comenzar con la instalación y configuración 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 instalación 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:
CREATE DATABASE sonarqube CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonarqube' IDENTIFIED BY 'sonarqube';
GRANT ALL ON sonarqube.* TO 'sonarqube'@'%' IDENTIFIED BY 'sonarqube';
GRANT ALL ON sonarqube.* TO 'sonarqube'@'localhost' IDENTIFIED BY 'sonarqube';
FLUSH PRIVILEGES;
Un vez tengamos creado el esquema y el usuario podemos comenzar con la instalación de SonarQube.
Instalación del Servidor Web de SonarQube
1) Vamos a la página oficial de descarga SonarQube y descargamos la última versión del servidor (SonarQube v4.0).
2) Descomprimimos el archivo .zip en C:\ para tenerlo fácilmente 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 configuración hay que comentar la siguiente línea para no utilizar el SGBD de H2.
1 #sonar.embeddedDatabase.port=9092
Descomentamos las siguientes líneas y asignamos los siguientes valores para indicar al servidor web de SonarQube qué base de datos vamos a utilizar, los datos del usuario y contraseña de la base de datos y la información del servidor web donde se ejecutará una vez esté instalado. Por defecto se ejecuta sobre localhost con el puerto 9000.
Instalación del Servidor Web de SonarQube
1) Vamos a la página oficial de descarga SonarQube y descargamos la última versión del servidor (SonarQube v4.0).
2) Descomprimimos el archivo .zip en C:\ para tenerlo fácilmente 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 configuración hay que comentar la siguiente línea para no utilizar el SGBD de H2.
1 #sonar.embeddedDatabase.port=9092
Descomentamos las siguientes líneas y asignamos los siguientes valores para indicar al servidor web de SonarQube qué base de datos vamos a utilizar, los datos del usuario y contraseña de la base de datos y la información del servidor web donde se ejecutará una vez esté instalado. Por defecto se ejecuta sobre localhost con el puerto 9000.
- # DATABASE
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# 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 versión 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 de minutos porque tiene que crear las tablas en la base de datos. Si todo ha ido bien se debería mostrar un mensaje indicando que el servidor está arrancado:
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 debería 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 página de inicio del servidor de SonarQube:
Esto significa que ya tenemos nuestro servidor de SonarQube listo para funcionar.
Instalación del plugin para el lenguaje de programación
Antes de poder analizar el código 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 versión más reciente. Para ello solo tenemos que hacer click en Available Plugins y seleccionar el que queramos.
Antes de poder analizar el código 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 versión más reciente. Para ello solo tenemos que hacer click en Available Plugins y seleccionar el que queramos.
Instalación y configuración de Sonar-Runner
Una vez tengamos listo el servidor con los plugins necesarios es hora instalar un cliente para poder analizar el código. Para este tutorial voy a utilizar Sonar-Runner que es el cliente oficial de SonarQube.
1) Vamos a la página oficial de descarga SonarQube y descargamos la última versión del cliente (Sonar-Runner v2.3).
2) Descomprimimos el archivo .zip en C:\ para tenerlo fácilmente 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 líneas y completarlas con los datos de la configuración del servidor que hemos empleado en la instalación del mismo:
Una vez tengamos listo el servidor con los plugins necesarios es hora instalar un cliente para poder analizar el código. Para este tutorial voy a utilizar Sonar-Runner que es el cliente oficial de SonarQube.
1) Vamos a la página oficial de descarga SonarQube y descargamos la última versión del cliente (Sonar-Runner v2.3).
2) Descomprimimos el archivo .zip en C:\ para tenerlo fácilmente 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 líneas y completarlas con los datos de la configuración del servidor que hemos empleado en la instalación del mismo:
- #----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8
#----- Global database settings
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
Añadimos una nueva variable del sistema llamada SONAR_RUNNER_HOME con el directorio de instalación:
Añadimos la ruta completa al path de Windows:
Para comprobar si se ha añadido correctamente al path de Windows abrimos un terminal y ejecutamos el comando sonar-runner –h. Si todo es correcto deberíamos 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.
El proceso de análisis de un proyecto lo podeís encontrar en el siguiente post.
Más información en la web de SonarQube y en la documentación
El proceso de análisis de un proyecto lo podeís encontrar en el siguiente post.
Más información en la web de SonarQube y en la documentación