2011-12-13 25 views
12

Estoy tratando de ejecutar sonar-runner para analizar múltiples proyectos Java de una vez. De acuerdo con el documentation, solo se trata de crear un archivo sonar-project.properties para cada proyecto. Pero no tengo claro exactamente dónde tengo que poner estos archivos sonar-project.properties.Setup sonar-runner para múltiples proyectos Java

Intenté agregar varios archivos .properties en la carpeta $SONAR_RUNNER_HOME/conf, pero parece que el corredor no los recogió. Solo ve el archivo sonar-project.properties.

¿Alguna sugerencia sobre cómo ejecutar sonar-runner para múltiples proyectos?

Respuesta

11

El runner Sonar admite proyectos con varios módulos. No es compatible con el análisis de proyectos múltiples en una invocación.

El corrector de Java debe ejecutarse contra cada proyecto, recogiendo el archivo de propiedades en cada directorio de proyecto.

0

Desde 2.0, corredor Sonar trabaja con múltiples módulos, tal como se describe here

+1

la pregunta es sobre ** proyectos múltiples ** y no ** módulos múltiples ** en el mismo proyecto. ¿Estás diciendo que el enlace que mencionaste también funciona para múltiples proyectos de Java? Mark O'Connor en su respuesta ha mencionado que no admite el análisis de proyectos múltiples en una sola invocación. –

+0

En primer lugar, el enlace está muerto, pero en segundo lugar, parece que la definición de proyecto vs. módulo es desde la perspectiva del runner de sonar ... En ese caso puede definir un proyecto y pasar diferentes directorios fuente, que incluirían fuentes de proyectos diferentes, por lo siempre y cuando sean accesibles desde su sistema de archivos. Eso le daría una instantánea de "proyecto" de múltiples proyectos de Java en un análisis de proyecto de sonar. – sloven

11

En realidad es bastante simple para que el corredor de sonar analizar varios proyectos, siempre y cuando se encuentren en el mismo sistema de archivos. Simplemente coloque un archivo de propiedades en un directorio que no esté muy lejos de los proyectos. Luego declare cada uno de sus proyectos en este archivo de propiedades.

Supongamos que tiene 4 proyectos en dev/general/BasicStuff, dev/service/CoolStuff, dev/utility/UtilStuff y dev/display/FrameWorkStuff.

Como se describe en here Camino # 2 se crea un archivo en dev que contiene la línea

sonar.modules=BasicStuff,CoolStuff,UtilStuff,FrameWorkStuff 

Y para cada uno de los "módulos" una línea como

BasicStuff.sonar.projectBaseDir=general/BasicStuff 
CoolStuff.sonar.projectBaseDir=service/CoolStuff 

Dentro de los directorios del proyecto usted a su vez crea un archivo que contiene la otra información necesaria, por ejemplo

sonar.projectName=BasicStuff 
sonar.sources=src 

Si empieza a sonar de corredor con las propiedades de primer nivel como objetivo se obtiene un resultado global que muestra las métricas a través de los proyectos, así como lo que le permite profundizar en cada uno de ellos.

Espero que esto fuera lo que estabas buscando.

+0

Increíblemente útil. Ajusté esto para trabajar con una compilación de Jenkins/Sonar y ahorró muchísimo tiempo. Solo tuvo que crear un trabajo de compilación en lugar de 11. – Michael

Cuestiones relacionadas