如何使用 Gradle MSBuild 插件 运行 SonarQube 扫描仪?

How to run SonarQube Scanner with Gradle MSBuild Plugin?

不过,我正在使用 Gradle (https://github.com/Ullink/gradle-msbuild-plugin) to build my C++ project under Windows, this works fine. I couldn't find a way to run SonarQube Scanner Build Wrapper (https://docs.sonarqube.org/display/PLUG/Building+on+Windows) 的 MSBuild 插件,这对于 C/C++ 项目是必需的。

build.gradle 看起来像这样:

plugins {
  id "com.ullink.msbuild" version "3.1"
}
...
msbuild {
    projectFile = file("${buildDir}/${Target_platform_arch}/ALL_BUILD.vcxproj")

    projectName = 'SomeProject'

    verbosity = 'detailed'

    targets = ['Clean', 'Rebuild']

    version = '14.0'

    msbuildDir = /path/to/Msbuild
    ...
}

sonarqube 扫描仪构建包装器应称为:

build-wrapper-win-x86-64.exe --out-dir bw_output MSBuild.exe /t:Rebuild

那么我如何 运行 build-wrapper 与 Gradle MSBuild 插件一起使用?我认为这个用例并不罕见,但我找不到解决方案。

构建包装器正在拦截低级编译器调用,因此理论上它可以与任何构建框架一起工作。

如果您正在使用 Gradle 构建一个 C/C++ 项目,只需调用:

build-wrapper-win-x86-64.exe --out-dir bw_output gradle <your build task>