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:

Sonar

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&amp;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
Compartir:
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Google Buzz
  • LinkedIn
  • Meneame
  • Print

No hay entradas relacionadas.