Gradle、SonarQube插件和项目名称使用非法字符
我们有一个多项目的gradle构建,它将项目组织到目录中。例如:Gradle、SonarQube插件和项目名称使用非法字符,gradle,sonarqube,Gradle,Sonarqube,我们有一个多项目的gradle构建,它将项目组织到目录中。例如: root +--Libraries +-- Project1 +-- Project2 +--Tools +-- Project3 +-- Project4 由于SonarRunner插件已被弃用,我们尝试使用官方版本。使用的gradle版本是2.10 由于我们的项目结构,项目名称存在问题:SonarQube插件接收项目名称“Libraries\Project1”。“\”是项目名称的非法字符 以前,对于S
root
+--Libraries
+-- Project1
+-- Project2
+--Tools
+-- Project3
+-- Project4
由于SonarRunner插件已被弃用,我们尝试使用官方版本。使用的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。有没有人遇到过类似的问题
谢谢你的帮助 在Linux环境中,对我有效的方法是将“/”替换为“:”,并重写moduleKey。将此部件添加到root 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
}
}
}在Linux环境中,对我有效的方法是将“/”替换为“:”,并覆盖moduleKey。将此部件添加到root 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
}
}
}