问题描述
您可以执行的操作之一:
解决方法
我想扩展sonar.sources
,默认情况下是pom.xml,src/main/java
,src/main/resources
以检查位于此处的XML文件。
由于我有一个多模块maven项目(>
100个模块,嵌套),其中很多没有src/main/resources
文件夹,而大多数甚至没有src
文件夹(例如,对于Packaging = 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]
sonar-maven-plugin本身${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
?根据当前的sonar-
maven源,仅当POM具有pom
打包但没有打包ear
或jar
没有资源的模块时,才会忽略缺少的目录。
还是应该src/main
在声纳启动之前确保存在?我可以使用哪个钩子?