2011-12-13 18 views
12

Sto cercando di eseguire il sonar-runner per analizzare più progetti Java in una volta sola. Secondo lo documentation si tratta semplicemente di creare un file sonar-project.properties per ogni progetto. Ma non mi è chiaro dove esattamente devo mettere questi file sonar-project.properties.Setup sonar-runner per più progetti java

Ho provato ad aggiungere più file .properties nella cartella $SONAR_RUNNER_HOME/conf ma il runner non sembra averli prelevati. Vede solo il file sonar-project.properties.

Qualche suggerimento su come eseguire il sonar-runner per più progetti?

risposta

11

Il runner Sonar supporta progetti con più moduli. Non supporta l'analisi di più progetti in un'unica invocazione.

Il runner Java deve essere eseguito su ogni progetto, raccogliendo il file delle proprietà in ogni directory del progetto.

0

Dal 2.0, Sonar corridore funziona con più moduli, come descritto here

+1

la domanda riguarda ** più progetti ** e non ** moduli multipli ** nello stesso progetto. Stai dicendo che il link che hai citato funziona anche per più progetti Java. Mark O'Connor nella sua risposta ha affermato che non supporta l'analisi di più progetti in un'unica invocazione. –

+0

Prima di tutto il collegamento è morto, ma in secondo luogo, sembra che la definizione del progetto rispetto al modulo sia dalla prospettiva del sonar runner ... In tal caso è possibile definire un progetto e passare diverse directory sorgente, che includeranno fonti di diversi progetti, quindi a condizione che siano accessibili dal tuo file system. Ciò ti darebbe un'istantanea di "progetto" di più progetti Java in un'analisi di un progetto di sonar. – sloven

11

In realtà è abbastanza semplice da lasciare che il corridore sonar analizzare più progetti, purché si trovano nello stesso file system. Basta inserire un file di proprietà in una directory che non sia troppo lontana dai progetti. Quindi dichiara ciascuno dei tuoi progetti in questo file di proprietà.

Supponiamo di avere 4 progetti in dev/general/BasicStuff, dev/service/CoolStuff, dev/utility/UtilStuff e dev/display/FrameWorkStuff.

Come descritto nel here Way # 2 si crea un file in dev, che contiene la linea

sonar.modules=BasicStuff,CoolStuff,UtilStuff,FrameWorkStuff 

E per ciascuno dei "moduli" una linea come

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

All'interno delle directory di progetto a tua volta, crea un file che contiene le altre informazioni necessarie, ad es

sonar.projectName=BasicStuff 
sonar.sources=src 

Se si inizia corridore sonar con le proprietà di primo livello come bersaglio si ottiene un risultato globale che mostra le metriche attraverso i progetti, oltre a permettere di visualizzare in dettaglio nella ciascuno di essi.

Spero che questo fosse quello che stavi cercando.

+0

Incredibilmente utile. L'ho ottimizzato per funzionare con una build Jenkins/Sonar e ha risparmiato un sacco di tempo. Dovevo creare solo un lavoro di costruzione invece di 11. – Michael

Problemi correlati