Hola
Hemos probado SonarQube 4.3.2 sobre PostgreSQL 9.1, como herramienta de análisis de calidad del código.
Ésta entrada recoge los pasos a dar para instalar el portal sonar, el analizador sonar-runner y realizar el análisis sobre un proyecto maven multimodular con Spring, Hibernate, JSF y Facelets.
1) Instalamos el servidor PostgreSQL 9.1 con el comando:
sudo apt-get install postgresql
2) Instalamos la consola de administración del servidor con el comando:
sudo apt-get install pgadmin3
3) Creamos una base de datos llamada sonar.
4) Creamos un usuario sonar con password sonar y con permisos de superusuario sobre la base de datos anterior.
5) Descargamos sonar de la página http://www.sonarqube.org/downloads/ en éste ejemplo hemos bajado la versión 4.3.2.
6) Descomprimimos el zip por ejemplo en nuestro $HOME.
7) Seguimos los pasos del tutorial de instalación de la página http://docs.codehaus.org/display/SONAR/Installing
- Editamos el fichero $HOME/sonarqube-4.3.2/conf/sonar.properties
- Comentamos la cadena de conexión definida para la BBDD H2, que viene activada por defecto
#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
- Descomentamos y ajustamos la cadena de conexión correspondiente a la BBDD PostgreSQL
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
- Ajustamos los parámetros de configuración del servidor web
sonar.web.host=localhost
sonar.web.context=/sonar
sonar.web.port=9000
- Ajustamos los parámetros de conexión a internet para el update-center, que permitirá que sonar se baje los plugins necesarios para analizar proyectos en varios lenguajes.
sonar.updatecenter.activate=true
http.proxyHost=xxx.xxx.xxx.xxx
http.proxyPort=zzz
http.proxyUser=usuario
http.proxyPassword=password
- Levantamos sonar mediante el comando $HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start
- Vigilamos el contenido del fichero $HOME/sonarqube-4.3.2/logs/sonar.log por si hubiese errores. Si todo va bien deberíamos ver que se han generado 51 tablas en nuestro esquema de BBDD.
8) Accedemos a la URL del servidor Sonar en nuestro navegador:
http://127.0.0.1:9000/sonar/
9) Ahora queremos analizar un proyecto java, para ello nos autenticamos en el portal con admin/admin
10) Entramos en Settings/Update Center para verificar si tenemos o no instalado el plugin para el lenguaje de programación que vamos a analizar. En nuestro caso proyectos Java (1.6/1.7) con Maven 2.2.1. En la pestaña 'Installed Plugins' veremos que ya tenemos Java. En la pestaña 'Available Plugins' podremos elegir muchos más, concretamente para nuestros proyectos no interesan:
- Artifact Size
- Checkstyle
- PDF Report
- CSS
- JavaScript
- Web
- XML
Tras instalar todos éstos plugins deberemos reiniciar Sonar con los comandos:
$HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh stop
$HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start
Nota. Hay montones de plugins adicionales que permiten conectar Sonar con LDAP para autenticar a los usuarios del portal, con JIRA para gestión de errores en las aplicaciones analizadas, con JMeter para publicar los resultados de pruebas de rendimiento en Sonar, etc.
11) Instalamos el analizador de código 'SonarQube Runner', para ello:
- Lo descargamos de: http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
- Lo descomprimimos en $HOME/sonar-runner-2.4
- Ajustamos el fichero de configuración: $HOME/sonar-runner-2.4/conf/sonar-runner.properties
sonar.host.url=http://localhost:9000/sonar
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
- Definimos la variable de entorno SONAR_RUNNER_HOME en nuestro fichero .profile y ajustamos la variable PATH del entorno:
SONAR_RUNNER_HOME=/home/egdepedro/sonar-runner-2.4
export SONAR_RUNNER_HOME
PATH="$SONAR_RUNNER_HOME/bin:$PATH"
- Reiniciamos la sesión para activar las variables de entorno.
- Probamos que todo haya quedado bien instalado con el comando:
egdepedro@oberon:~$ sonar-runner -h
INFO:
INFO: usage: sonar-runner [options]
INFO:
12) Ahora vamos a analizar uno de nuestros proyectos, para ello:
- Añadimos en la raíz del mismo, al mismo nivel que el fichero pom.xml, el fichero 'sonar-project.properties' con el siguiente contenido:
# Required metadata
sonar.projectKey=prueba
sonar.projectName=prueba
sonar.projectVersion=1.0
# Some properties that will be inherited by the modules
sonar.sources=src
# List of the module identifiers
sonar.modules=prueba-web,prueba-batch,prueba-ws,prueba-comun
- Levantamos el servidor sonar con el comando
$HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start
- Nos movemos al directorio raíz del proyecto, donde hemos colocado el fichero 'sonar-project.properties' y lanzamos el comando:
sonar-runner
- Con ésto veremos que se va ejecutando en análisis sobre cada uno de los módulos de nuestro proyecto
13) Ahora volvemos a conectar al servidor sonar: http://127.0.0.1:9000/sonar/ y en el menú Projects podremos ver un nuevo proyecto 'prueba' con el resultado del análisis.
Referencias
http://docs.codehaus.org/display/SONAR/Installing
http://docs.codehaus.org/display/SONAR/Provisioning+Projects
http://docs.codehaus.org/display/SONAR/Analyzing+Source+Code
http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+SonarQube+Runner
http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner
Páginas
martes, 1 de julio de 2014
Eliminar todos los directorios .svn de un proyecto
Hola
Para eliminar de un cierto proyecto java todas las carpetas .svn de cada una de las subcarpetas que componen el proyecto lo más útil es lanzar un comando unix:
1) Nos movemos a la raíz del proyecto
2) Lanzamos el comando:
find -type d -name '.svn' -exec rm -rfv {} \;
Para eliminar del mismo proyecto los ficheros de cierto tipo. por ejemplo .project el comando es:
find . -type f -name "*.project" -delete
Para eliminar de un cierto proyecto java todas las carpetas .svn de cada una de las subcarpetas que componen el proyecto lo más útil es lanzar un comando unix:
1) Nos movemos a la raíz del proyecto
2) Lanzamos el comando:
find -type d -name '.svn' -exec rm -rfv {} \;
Para eliminar del mismo proyecto los ficheros de cierto tipo. por ejemplo .project el comando es:
find . -type f -name "*.project" -delete
Ejecutar aplicaciones X de otra máquina en local
Hola
Cuando queremos ejecutar algún aplicativo que precise de un sistema de ventanas en un servidor donde no esté instalado/levantado el servidor x-windows por ejemplo para ahorrar recursos, podemos utilizar el servidor x-windows de nuestra máquina Ubuntu para hacerlo.
Supondremos que la IP de nuestra máquina es XXX.XXX.XXX.XXX y que la IP de la máquina remota es ZZZ.ZZZ.ZZZ.ZZZ
A partir de aquí los pasos son sencillos:
1) Permitimos que la máquina remota acceda a nuestro servidor X lanzando en nuestra máquina el comando:
xhost ZZZ.ZZZ.ZZZ.ZZZ
2) Verificamos el valor de la variable DISPLAY de nuestra máquina con el comando:
echo $DISPLAY --> 0.0
3) Nos conectamos a la máquina remota con el comando:
ssh usuario@ZZZ.ZZZ.ZZZ.ZZZ
4) Redirigimos la salida gráfica de la máquina remota a nuestro servidor x-windows ejecutando en la máquina remota el comando:
export DISPLAY=XXX.XXX.XXX.XXX:0.0
5) Levantamos en la máquina remota el aplicativo gráfico que queremos visualizar en local, por ejemplo xclock, con lo que veremos que en nuestro equipo aparece el reloj.
Nota. Para eliminar el permiso de uso de nuestro servidor x-windows otorgado a la máquina ZZZ.ZZZ.ZZZ.ZZZ deberíamos ejecutar:
xhost -ZZZ.ZZZ.ZZZ.ZZZ
Un saludo
Cuando queremos ejecutar algún aplicativo que precise de un sistema de ventanas en un servidor donde no esté instalado/levantado el servidor x-windows por ejemplo para ahorrar recursos, podemos utilizar el servidor x-windows de nuestra máquina Ubuntu para hacerlo.
Supondremos que la IP de nuestra máquina es XXX.XXX.XXX.XXX y que la IP de la máquina remota es ZZZ.ZZZ.ZZZ.ZZZ
A partir de aquí los pasos son sencillos:
1) Permitimos que la máquina remota acceda a nuestro servidor X lanzando en nuestra máquina el comando:
xhost ZZZ.ZZZ.ZZZ.ZZZ
2) Verificamos el valor de la variable DISPLAY de nuestra máquina con el comando:
echo $DISPLAY --> 0.0
3) Nos conectamos a la máquina remota con el comando:
ssh usuario@ZZZ.ZZZ.ZZZ.ZZZ
4) Redirigimos la salida gráfica de la máquina remota a nuestro servidor x-windows ejecutando en la máquina remota el comando:
export DISPLAY=XXX.XXX.XXX.XXX:0.0
5) Levantamos en la máquina remota el aplicativo gráfico que queremos visualizar en local, por ejemplo xclock, con lo que veremos que en nuestro equipo aparece el reloj.
Nota. Para eliminar el permiso de uso de nuestro servidor x-windows otorgado a la máquina ZZZ.ZZZ.ZZZ.ZZZ deberíamos ejecutar:
xhost -ZZZ.ZZZ.ZZZ.ZZZ
Un saludo
Suscribirse a:
Entradas (Atom)