SonarQube 项目配置文件
费话不说,直接上代码:
需要注意的地方:
1. 每个项目的key不能重复。
2. 注意编码方式。
3. 注意分模块的写法。
4. 忽略源码文件的写法。
# Required metadata sonar.projectKey=EG:Fm sonar.projectName=Fm sonar.projectVersion=1.0 sonar.sourceEncoding=UTF-8 sonar.modules=csharp-module,javascript-module # csharp-module csharp-module.sonar.projectName=Csharp Module csharp-module.sonar.language=cs csharp-module.sonar.sources=. csharp-module.sonar.exclusions=**/obj/**/* csharp-module.sonar.projectBaseDir=. # javascript-module javascript-module.sonar.projectName=JavaScript Module javascript-module.sonar.language=js javascript-module.sonar.sources=. javascript-module.sonar.exclusions=**/lib/**/*,**/node_modules/**/* javascript-module.sonar.projectBaseDir=.
以上配置文件在分析.net framework时没有问题,但分析.net core时,发现不能分析cs代码,在网上看到有博友说是sonarc#插件版本的问题,我也更新到最新版了,还是不行。
后来就用了新的dotnet-sonarscanner做代码分析,才可以分析.net core的代码。记录如下:
首先安装dotnet-sonarscanner: 这里的dotnet tool是随着.net core 2.1版本安装的,相当于npm的功能。
dotnet tool install --global dotnet-sonarscanner --version 4.3.1
其次在项目目录下运行命令:
sh "export PATH=$PATH:/root/.dotnet/tools && export DOTNET_ROOT=/usr/local/dotnet && cd ${projectDir}/ && /usr/local/bin/dotnet sonarscanner begin /k:'FutureMr' /d:sonar.host.url='http://10.117.150.41:39900' /d:sonar.login='d750699187a51815f44523d704d9afe7084aa96d' /d:sonar.exclusions='**/build/**/*,**/bin/**/*,**/obj/**/*,**/lib/**/*,**/node_modules/**/*,**/media/**/*,**/FmContent/**/*,**/css/**/*,**/images/**/*,**/Template/**/*'" sh 'cd ${projectDir}/ && /usr/local/bin/dotnet build' sh 'export PATH=$PATH:/root/.dotnet/tools && export DOTNET_ROOT=/usr/local/dotnet && cd ${projectDir}/ && /usr/local/bin/dotnet sonarscanner end /d:sonar.login="d750699187a51815f44523d704d9afe7084aa96d"'
我是在Jenkins的pipleline中运行的,由于pipeline中总是提示:
No executable found matching command "dotnet-sonarscanner"
但是我们的path环境变量已经设置了,但jenkins不认,所以只能在这里重新设置。