Desidero estendere sonar.sources
, che per impostazione predefinita è pom.xml,src/main/java
, per src/main/resources
per controllare i file XML che si trovano lì.plug-in sonar-maven: estensione sonar.sources nel progetto multi-modulo
Questo compito apparentemente semplice si è rivelato difficile poiché ho un progetto Maven multi-modulo (> 100 moduli, nidificati) con molti di loro non hanno una cartella src/main/resources
e la maggior parte di loro non ha nemmeno una cartella src
(ad es. per imballaggio = pom). Questo porta ad un errore di generazione se ho impostato sonar.sources
-pom.xml,src/main/java,src/main/resources
o pom.xml,src/main
:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project xyz-parent: The directory 'C:\...\submodule\src\main\resources' does not exist for Maven module ... Please check the property sonar.sources -> [Help 1]
Il sonar-maven-plugin stesso utilizza ${project.build.sourceDirectory}
farlo nel modo giusto in ogni modulo.
ho cercato di usare le espressioni regolari per impostare sonar.sources
-src/main
tagliando /java
(o \java
su Windows) tramite
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>sonar.sources</name>
<value>${project.build.sourceDirectory}</value>
<regex>[/\\]+java$</regex>
<replacement></replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
Ma questo non fa nulla e non ho idea di quale fase del ciclo di vita dovrei associarlo per averlo eseguito
Oppure esiste un modo per evitare l'errore dovuto alla directory mancante in sonar.sources
? In base a current sonar-maven source le directory mancanti vengono ignorate solo se il POM ha la confezione pom
ma non per i moduli ear
o jar
senza risorse.
O dovrei assicurarmi che src/main
esista prima dell'inizio del sonar? Quale gancio posso usare per quello?
Grazie! Ho impostato 'sonar.inclusions' su' pom.xml, src/main/** 'e funziona proprio come dovrebbe. Penso che sarebbe un miglioramento per la [documentazione] (http: //docs.sonarqube .org/display/SONAR/Analysis + Parameters) se 'sonar.exclusions' non sono stati discussi solo nel contesto di [Restringere il Focus] (http://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus). – vboerchers