【问题标题】:How to exclude some maven project from sonar analysis如何从声纳分析中排除一些 Maven 项目
【发布时间】:2014-05-23 17:54:11
【问题描述】:

我有很多(比如说 10 个(A、B、C...))基于 maven 的 eclipse 插件。

我有一个包含所有其他插件项目的主 pom 文件。 现在通过以sonar:sonar 为目标构建主文件,它将构建所有插件。

所以我的问题:有什么办法可以排除一些插件,比如 A 和 C.?

【问题讨论】:

    标签: java eclipse maven eclipse-plugin sonarqube


    【解决方案1】:

    我对官方记录的sonar.skip 不满意:当我在子模块 POM 中设置它时,我看到了

    [INFO] Delaying SonarQube Scanner to the end of multi-module project
    

    在应该包含的模块之后,然后

    [INFO] sonar.skip = true: Skipping analysis
    

    在反应堆构建结束时,没有分析/上传。

    相反,我在根 POM 中将 sonar.exclusions 定义为与将在要跳过的子模块中使用的源文件(按包路径)匹配的 pattern。这似乎奏效了。


    顺便说一句,在根 POM 中设置 sonar.projectKey 不起作用;声纳抱怨

    Project '…' can't have 2 modules with the following key: …
    

    我通过将其移至 .mvn/maven.config 来解决这个问题:

    -Dsonar.projectKey=…
    

    【讨论】:

      【解决方案2】:

      注意:此属性自 4.3 版起已弃用,不应再使用。

      documentation 开始,有一个使用sonar.skippedModules 跳过模块的选项

      您也可以从声纳管理页面执行此操作,如跳过模块部分 here 中所述。

      【讨论】:

      • 请注意:"此属性自 4.3 版起已弃用,不应再使用。"
      【解决方案3】:

      有几种方法,其中一种是在您要跳过的项目/模块的pom.xml 中添加sonar.skip 属性。

      这从 SonarQube 分析中排除了一个项目:

      <properties>
          <sonar.skip>true</sonar.skip>
      </properties>
      

      这也适用于 Jenkins 并将 Sonar 作为构建后操作运行。

      更多详情见:Analyzing with SonarQube Scanner for Maven

      【讨论】:

        猜你喜欢
        • 2018-06-04
        • 1970-01-01
        • 2011-02-15
        • 2017-05-09
        • 2013-01-29
        • 2016-09-19
        • 2016-03-21
        • 2014-04-14
        • 2023-03-03
        相关资源
        最近更新 更多