Ich habe ein Maven-Projekt mit Java-Quellen und Scala-Testquellen. Ich erzeuge Code-Coverage mit Jacoco
während der verify
Bühne. Wenn ich versuche, das Sonar Ziel entweder während der Prüfphase laufen durch eine Ausführungs Hinzufügen oder mvn verify sonar:sonar
durch Laufen, habe ich am Ende mit dem Testverzeichnis nach oben wird zweimal durch Sonar hinzugefügt:Sonar Maven Plugin: Wie schließe ich Testquellenverzeichnisse aus?
[INFO] [11:15:34.756] Test directories:
[INFO] [11:15:34.756] /Users/xxx/Documents/workspace/misc/xxx/src/test/scala
[INFO] [11:15:34.756] /Users/xxx/Documents/workspace/misc/xxx/src/test/scala/../scala
, die in der Analyse ergibt sich nicht an der folgende Fehler:
Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar (default-cli) on project kv-mapper: Can not execute SonarQube analysis: Unable to read and import the source file : '/Users/xxxx/Documents/workspace/misc/xxx/src/test/scala/../scala/xxx/xxxxx/xxx/xxx/xxxxx/xxxxxx.java' with the charset : 'UTF-8'. Duplicate source for resource
Mein pom.xml (für Sonar) sieht wie folgt aus.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.plugin.version}</version>
<!-- no default executions -->
<configuration>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.language>java</sonar.language>
<sonar.jacoco.itReportPath>
${basedir}/target/jacoco.exec
</sonar.jacoco.itReportPath>
<sonar.exclusions>
**/test/*
</sonar.exclusions>
</configuration>
</plugin>
Wie konfiguriere ich Sonar entweder:
- ausschließen Test/scala Verzeichnis vollständig? oder
- das doppelte Verzeichnis entfernen?
Das ist genau verwendet werden, was ich in der pom.xml tat (siehe oben) mit dem sonar.exclusions Parameter. Haben Sie eine Probe Pom, die ich vielleicht sehen könnte? – Siddhu
Sie müssen Ausschlüsse für Testdateien (nicht im Quellcode) festlegen: sonar.tests.exclusions property –