gpt4 book ai didi

java - 多模块项目中的 sonar-maven-plugin : extending sonar. 源

转载 作者:搜寻专家 更新时间:2023-10-30 21:03:42 26 4
gpt4 key购买 nike

我想通过src/main/resources扩展sonar.sources,默认是pom.xml,src/main/java code> 以检查位于此处的 XML 文件。

这个看似简单的任务其实很困难,因为我有一个多模块 Maven 项目(> 100 个模块,嵌套),其中很多没有 src/main/resources文件夹,其中大部分甚至不是 src 文件夹(例如 packaging=pom)。如果我将 sonar.sources 设置为 pom.xml,src/main/java,src/main/resourcespom.xml,这将导致构建错误,源/主:

[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} 在每个模块中正确执行。

我试图通过切断 /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>

但这什么都不做,我不知道我应该将它绑定(bind)到哪个生命周期阶段以使其执行。

或者有什么方法可以避免 sonar.sources 中缺少目录导致的错误?根据current sonar-maven source仅当 POM 具有 pom 包装时才会忽略缺少的目录,但对于没有资源的 earjar 模块则不会。

或者我应该确保 src/main 在 Sonar 启动之前存在吗?我可以使用什么钩子(Hook)?

最佳答案

您可以做的事情之一:

  • 在您的根 POM 中,定义以下属性:
    • sonar.sources.
    • sonar.inclusionssrc/main/**
    • => 这将包括 SQ 在您的模块中找到的所有已知文件 src/main 文件夹(如果存在)
  • 在您的模块中,如果您想更好地控制进入的内容,您只需使用/覆盖 sonar.exclusionssonar.inclusions

关于java - 多模块项目中的 sonar-maven-plugin : extending sonar. 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com