sonar-maven-plugin:在多模块项目中扩展sonar.sources
我想扩展 ,默认情况下是 ,为了检查位于那里的 XML 文件。sonar.sources
pom.xml,src/main/java
src/main/resources
这个看似简单的任务变得很困难,因为我有一个多模块maven项目(>100个模块,嵌套),其中很多都没有文件夹,其中大多数甚至没有文件夹(例如,用于package=pom)。如果我设置为 或 ,这会导致生成错误:src/main/resources
src
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-plugin本身用于在每个模块中正确执行。${project.build.sourceDirectory}
我试图通过切断(或在Windows上)来使用正则表达式来设置sonar.sources
src/main
/java
\java
<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>
但这无济于事,我不知道我应该将其绑定到哪个生命周期阶段以执行它。
或者有没有办法避免由于目录中缺少目录而导致的错误?根据当前的声纳专家,只有当POM具有打包但不包含或没有资源的模块时,才会忽略缺少的源目录。sonar.sources
pom
ear
jar
或者我应该确保在声纳开始之前存在吗?我可以用什么钩子?src/main