Sonar es un proyecto OpenSource de codehaus.org para analizar la calidad tu código en Java con diferentes tipos de métricas, solo funciona con proyectos construidos con Maven2.
Para descargar el proyecto http://sonar.codehaus.org/downloads/
La Instalación es bien sencilla, primero debes descomprimir el ZIP que descargaste y modificar el archivo sonar.properties:
#--------------------------------------------------------- # WEB # THESE SETTINGS ARE USED ONLY IN STANDALONE MODE. IGNORED WHEN THE WAR IS DEPLOYED ON A JEE SERVER. #--------------------------------------------------------- # Listen host/port and context path (for example / or /sonar). Default values are 0.0.0.0:9000/ #sonar.web.host: 0.0.0.0 sonar.web.port: 8080 #sonar.web.context: / |
La primera propiedad se refiere al IP donde tienes instalado el sonar, el segundo el puerto y la tercera propiedad el contexto en tomcat o jboss, si estamos trabajando con virtualhost no creo que haga falta que pongas un contexto.
#----- MySQL 5.x/6.x # Comment the embedded database and uncomment the following lines to use MySQL sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1 #----- Global database settings sonar.jdbc.username: sonar sonar.jdbc.password: sonar sonar.jdbc.maxActive: 10 sonar.jdbc.maxIdle: 5 sonar.jdbc.minIdle: 2 sonar.jdbc.maxWait: 5000 sonar.jdbc.minEvictableIdleTimeMillis: 600000 sonar.jdbc.timeBetweenEvictionRunsMillis: 30000 |
En mi caso decidi conectarlo con MySQL aunque por defecto unsa una base de datos local en Derby, debes comentar las lineas de derby y descomentar la base de datos que tu eligas, hay buen menú donde elegir, y tal vez modificar datos como el usuario y la contraseña de conexión a la bd.
Llega la hora de crear el war, en la carpeta war, corres el comando build-war.sh y publicas en tu contenedor web para java el proyecto.
El tercer paso y mas importante es la configuracion en settings.xml en Maven2, en tu repositorio local.
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url> <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver> <sonar.jdbc.username>sonar</sonar.jdbc.username> <sonar.jdbc.password>password</sonar.jdbc.password> <sonar.host.url>http://tudominio:8080</sonar.host.url> </properties> </profile> </profiles> |
Esta sección se agrega en la parte de PROFILES en settings.xml en Maven2. Con esto lograremos que nuestro proyecto pueda publicarse en Sonar.
Ahora, la parte mas sencilla, navegas al path de tu proyecto y corres el comando siguiente,
mvn sonar:sonar |
y el resto es pan comido, en este proceso Sonar analizara tu código y creará las métricas en el portal. Algo como lo siguiente.
http://nemo.sonarsource.org/
