【问题标题】:Gradle, SonarQube plugin and project names with illegal charactersGradle、SonarQube 插件和带有非法字符的项目名称
【发布时间】:2016-05-19 03:04:33
【问题描述】:

我们有一个多项目 gradle 构建,它将项目组织到目录中。示例:

root
+--Libraries
   +-- Project1
   +-- Project2
+--Tools
   +-- Project3
   +-- Project4

由于不推荐使用 SonarRunner 插件,我们尝试使用官方的SonarQube plugin for gradle。使用的 gradle 版本是 2.10。

由于我们的项目结构,项目名称存在问题:SonarQube 插件接收项目名称“Libraries\Project1”。 “\”是项目名称的非法字符。

以前,对于 SonarRunner,问题是通过覆盖 ProjectKey 属性来解决的:

// project specific sonar configuration
gradle.projectsEvaluated {
  subprojects {
    sonarRunner {
      sonarProperties {
        def projectKey = "$project.group:$project.name".replaceAll('/', '-')
        property 'sonar.projectKey', projectKey
      }
    }
  }
}

SonarQube 的等效尝试是

// project specific sonar configuration
gradle.projectsEvaluated {
  subprojects {
    sonarqube{
      properties {
        def projectKey = "$project.group:$project.name".replaceAll('/', '-')
        property 'sonar.projectKey', projectKey
      }
    }
  }
}

但是,这不适用于 SonarQube。有没有人遇到过类似的问题?

感谢您的帮助!

【问题讨论】:

    标签: gradle sonarqube


    【解决方案1】:

    在 Linux 环境中对我有用的是用 ':' 替换 '/',并覆盖 moduleKey。将此部分添加到您的根 build.gradle 文件中:

    子项目{

    sonarqube {
        String regex = "(.*)/(.*)"
        String projectKey = project.name.replaceAll(regex, "\$1:\$2")
        String sonarModuleKey = rootProject.group + ':' + rootProject.name + ':' + projectKey
    
        properties {
            property "sonar.moduleKey", sonarModuleKey
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 2019-08-11
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      相关资源
      最近更新 更多