Я хочу расширить sonar.sources
, который по умолчанию равен pom.xml,src/main/java
, по src/main/resources
, чтобы проверить файлы XML, которые находятся там.sonar-maven-plugin: расширение сонара. Источники в многомодульном проекте
Эта, казалось бы, простая задача оказалась сложной, так как у меня есть мультимодульный проект maven (> 100 модулей, вложенных), у многих из которых нет папки src/main/resources
, и большинство из них даже не является папкой src
(например, для упаковки = pom). Это приводит к ошибке сборки, если я устанавливаю sonar.sources
к pom.xml,src/main/java,src/main/resources
или 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]
Сонар-Maven-плагин сам использует ${project.build.sourceDirectory}
, чтобы сделать это правильно в каждом модуле.
Я пытался использовать регулярные выражения, чтобы установить sonar.sources
в src/main
отрезав /java
(или \java
на Windows) с помощью
<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>
Но это не делает ничего, и я понятия не имею, к которой жизненный цикл фазы я должен связать его чтобы он выполнялся.
Или есть способ избежать ошибки из-за отсутствия каталога в sonar.sources
? Согласно current sonar-maven source недостающие каталоги игнорируются только в том случае, если POM имеет pom
, но не для ear
или jar
модулей без ресурсов.
Должен ли я гарантировать, что src/main
существует до запуска сонара? Какой крюк я могу использовать для этого?
Спасибо! Я установил 'sonar.inclusions'' 'pom.xml, src/main/**', и он работает так, как должен. Я думаю, что это будет улучшение для [документации] (http: //docs.sonarqube .org/display/SONAR/Analysis + Parameters), если 'sonar.exclusions' обсуждались не только в контексте [Сужение фокуса] (http://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus). – vboerchers