Continuando con la instalación de herramientas que nos ayuden a mejorar la productividad y calidad en nuestros desarrollos, esta vez toca Sonar.
Sonar es una herramienta open source que nos permite comprobar la calidad de nuestro código. Como en su propia página indican, cubre 7 ejes principales:

7 ejes
Además, cuenta con múltiples plugins.
Instalación
Sonar, al igual que Apache Archiva y Apache Continuum (ya lo veremos más adelante), puede utilizarse independientemente así como incluido en un contenedor de aplicaciones. Asimismo, puede utilizar una base de datos Derby u otra según le indiquemos.
Nuestra instalación la realizaremos sobre un contenedor de aplicaciones y utilizando MySQL como gestor de base de datos.
Creación de la base de datos
El siguiente paso es la creación de la base de datos en MySQL:
mysql -u root -p mysql> create database sonar; mysql> grant all privileges on sonar.* to sonar identified by 'sonarp4ss'; mysql> exit;
Descarga y descompresión del software
Nos bajaremos el software a partir de esta dirección. En nuestro caso, hemos descargado el archivo sonar-2.2.zip.
A continuación descomprimiremos el software. Hay que tener en cuenta que Sonar almacena la ruta física a partir de la cual hemos generado el archivo war, por lo que esta ruta no se debe eliminar posteriormente (Sonar la utilizará para obtener los plugins que utilizaremos,…).
cd /srv sudo mkdir -p webapps/wars cd webapps sudo unzip ~icesoft/Descargas/sonar-2.2.zip sudo mv sonar-2.2 sonar
Generación del archivo .war
Es necesario, en este punto, modificar la configuración de Sonar antes de generar el archivo war. Para ello, editamos el archivo conf/sonar.properties y comentamos las líneas de configuración de base de datos Derby y descomentamos las de MySQL:
#sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true #sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver #sonar.jdbc.validationQuery: values(1) sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1
También es necesario modificar la configuración del nombre de usuario y contraseña de acceso:
sonar.jdbc.username: sonar sonar.jdbc.password: sonarp4ss
Por último, aunque no necesario, descomentamos la línea de JDBC datasource, por si quisiéramos configurar los parámetros de conexión de base de datos mediante JNDI:
sonar.jdbc.jndiName: jdbc/sonar
Ahora, debemos generar el archivo war a desplegar en Tomcat:
cd /srv/webapps/sonar/war sudo ./build-war.sh sudo cp sonar.war /srv/webapps/wars/sonar-2.2.war cd /srv chown -R tomcat6:tomcat6 webapps
Configuración en Tomcat6
Únicamente queda disponer el archivo de la aplicación para que Tomcat arranque Sonar, por lo que debemos disponer el siguiente archivo “sonar.xml” en el directorio /var/lib/tomcat6/conf/Catalina/localhost:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/sonar" docBase="${catalina.base}/wars/sonar-2.2.war">
<Resource name="jdbc/sonar" auth="Container" type="javax.sql.DataSource"
username="sonar"
password="sonarp4ss"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/sonar?autoReconnect=true;useUnicode=true;characterEncoding=utf8" />
</Context>
Instalación de plugins
Como comentaba al principio, podemos instalar diversos plugins a Sonar. Para ello, dispondremos el archivo .jar correspondiente en el directorio “/srv/webapps/sonar/extensions/plugins”, rearrancaremos Tomcat y ya estarían disponibles.
Acceso a Sonar
Con estos pasos, ya podríamos acceder a la web de Sonar (http://hostname:8080/sonar), visualizando lo siguiente:
Configuración de Maven
Por último, sólo nos queda configurar Maven para que apunte a la base de datos de Sonar cuando se ejecute el plugin de Maven de Sonar. Tendremos que añadir el siguiente profile a nuestro archivo ~/.m2/settings.xml:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonarp4ss</sonar.jdbc.password>
<sonar.host.url>http://hostname:8080</sonar.host.url>
</properties>
</profile>
Así, para ejecutar el plugin de Maven2, teclearíamos el siguiente comando:
mvn sonar:sonar
Si tenemos Maven3, sería así:
mvn sonar3:sonar
No hay entradas relacionadas.










