Blog de Antonio Manuel Muñiz

Desarrollo, Ingeniería y Calidad del Software

Sonar y Continuum (La calidad bajo control II)

Hace algún tiempo comentaba cómo Sonar proporciona una serie de medidas de calidad del software. Integrar esta herramienta en el proceso de integración continua modelado con Apache Continuum no ha sido tan fácil como esperaba, sin embargo el resultado merece la pena.

En primer lugar tenemos que instalar y configurar Sonar 1.4RC1. La configuración por defecto hace que la aplicación use una base de datos en ficheros (derby). Dada la restricción impuesta para la configuración con derby haremos que Sonar utilice una base de datos MySQL, esta configuración será necesaria si Sonar y Continuum están en hosts distintos. Debemos comentar en el fichero sonar.properties las lineas:

#sonar.jdbc.url:  jdbc:derby://localhost:1527/sonar;create=true
#sonar.jdbc.driver:  org.apache.derby.jdbc.ClientDriver

y descomentar (sustituyendo <host> y <port> por el host y el puerto de la base de datos):

sonar.jdbc.url:  jdbc:mysql://<host>:<port>/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8
sonar.jdbc.driver:  com.mysql.jdbc.Driver

En el fichero sonar.properties también podemos configurar el puerto y el path de la aplicación:

sonar.web.port:  80
sonar.web.context:  /sonar

Para terminar con la configuración debemos crear una base de datos llamada “sonar” y un usuario con permisos que pueda conectarse desde cualquier host.

Ahora debemos configurar nuestro proyecto Maven para ser desplegado en Sonar. Para ello incluiremos un perfil en el fichero POM:

<profile>
    <id>sonar</id>
    <activation>
        <property>
            <name>env</name>
            <value>sonar</value>
        </property>
    </activation>
    <properties>
        <!-- URL de la instancia de Sonar -->
        <sonar.host.url>http://<sonar_host>:<port>/<path></sonar.host.url>
        <!-- URL de la base de datos -->
        <sonar.jdbc.url>jdbc:mysql://<db_host>:<port>/sonar</sonar.jdbc.url>
        <!-- Driver para MySQL -->
        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
        <!-- Usuario de base de datos con permisos sobre la BD "sonar" -->
        <sonar.jdbc.username>username</sonar.jdbc.username>
        <!-- Password el usuario anterior -->
        <sonar.jdbc.password>password</sonar.jdbc.password>
    </properties>
</profile>

Para desplegar el proyecto en Sonar ejecutaremos:

mvn -Psonar org.codehaus.sonar:sonar-maven-plugin:1.4RC1:sonar

En este se ha usado el plugin para la versión 1.4RC1 de Sonar, la versión del plugin debe ser la misma que la del servidor.

Si incluimos esta tarea en Continuum para que se ejecute cada noche entonces cada mañana tendremos un reciente análisis estático del código de nuestro proyecto.

Continuum

Incluir tarea en Continuum

About these ads

4 Respuestas a “Sonar y Continuum (La calidad bajo control II)

  1. chuidiang 2 febrero 2009 en 11:13 am

    Hola:

    Yo he tenido problemas con esta configuración porque había que añadir además el dialecto de base de datos y la clase para dicho dialecto en el perfil de maven, algo como esto

    mysql
    org.sonar.commons.database.dialect.MySqlWithDecimalDialect

    ¿Te ha pasado a tí también o hay alguna forma de evitarlo?

    Se bueno.

  2. chuidiang 2 febrero 2009 en 3:30 pm

    Gracias. Quizás sea por la versión de sonar, vero que este post es de Julio del año pasado y yo las pruebas las estoy haciendo ahora, con la versión 1.5.1

    Se bueno.

  3. Antonio Manuel Muñiz Martín 3 febrero 2009 en 12:18 am

    Hola. En la versión 1.5.1 tampoco hace falta, acabo de comprobarlo.

    ¿Se bueno? :)

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: