Sep 23

Sonar: viene … y se va.

 

Hace un tiempo instalé y probé Sonar, una estupenda herramienta que genera un informe muy vistoso y cómo de usar sobre las métricas de nuestro código, Pero al final tuve que abandonarlo. El compilado con maven generando el informe era muy lento y el servidor web de sonar acababa dando timeout por la carga a la que se veía sometido. Al final el compilado con maven fallaba por este timeout y eso me hacía totalmente imposible integrarlo con hudson, para obtener los informes actualizados todas las noches.

El otro día me dio por revisar cómo iba el desarrollo de Sonar, qué nuevas versiones habían sacado, qué problemas habían resuelto … y me resulto interesante que habían corregido/añadido una nueva "feature", la SONAR-764, en la que básicamente dicen que cargan el trabajo en el plugin de sonar para maven en vez de en el servidor web de sonar. Esto tiene pinta de que puede solucionar los problemas de timeout con el servidor de sonar. Así que a ello, descargar, instalar y probar.

Las primeras pruebas manuales funcionan a la perfección. Eso sí, los compilados tardan casi el doble ya que deben generar además todos los reportes de métricas, pero ya no tengo el problema de timeout y el informe acaba correctamente y se publica en el servidor web de sonar.

Siguiente paso, hacer que Hudson genere con sonar ese informe todas las noches y lo publique. Y ahí empezaron los problemas. Algunos proyectos tardaban más en compilar, pero lo hacían todo bien y el informe se publicaba. Pero otros proyectos, no necesariamente los más grandes, acababan dando una excepción en el compilado, indicando que "Sonar no se puede ejecutar" y un NullPointerException en los MOJOS de maven. Tras unas investigaciones rápidas, no llegué a ninguna conclusión ni ningún arreglo. El mismo proyecto compilado manualmente en el sitio donde lo hace hudson funciona, pero si lo hace hudson no funciona.

Así que mi gozo en un pozo. Desinstalar sonar y esperar a una nueva ocasión.

Entradas relacionadas:

5 Responses to “Sonar: viene … y se va.”

  1. Emilio Escobar Says:

    Buenas, sí que es cierto que pasa… pero para solucionarlo añade un paso más que sea sonar:sonar (ya tenemos sonar en mojo desde hace algunas versiones) con su configuración de base de datos en el settings.xml y funciona sin problemas.

    Yo también espero que se solucione.

    Saludos!

  2. Chuidiang Says:

    Hola, si lo de sonar:sonar ya está puesto (lo puse), pero aun así daba el error en algunos proyectos.
    Se bueno.

  3. Antonio Manuel Muñiz Says:

    Hola.

    Está claro que si en línea de comandos (sin que hudson entre en juego) funciona correctamente, el problema no está en sonar:sonar, sino en la forma en que hudson llama al plugin.

    ¿Por qué no envías un correo a la lista de correo sonar-users con la excepción?. Estoy seguro que te ayudarán a solucionarlo, y si es un fallo en el plugin ayudarás a identificarlo, ese es el modelo del Software Libre ¿no?

  4. Chuidiang Says:

    Lo hice, pero me salió un mensaje de que debía registrarme para poder enviar el correo y me dio pereza.

    Se bueno.

  5. Proxen Says:

    Buenas! No he encontrado otra forma de ponerme en contacto contigo sin registrarme así que te lo escribo por aquí para que al permitir el comentario lo leas.

    Me parece, espero no estar equivocado, que tienes un fallo en el siguiente artículo:
    http://www.chuidiang.com/chuwiki/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

    En la parte de escritura de un archivo de texto tienes fuera del try-catch del finally el código:
    if (null != fichero)
    fichero.close();

    Si va fuera por algún motivo por favor, explícamelo un poco por encima con un correo electrónico, gracias!

    PD: No hace falta que aceptes este comentario… era solamente para ponerme en contacto contigo!

Leave a Reply