问题描述
我正在尝试设置一个 Jenkins 声明性管道,其中还包括 SonarQube 扫描作为阶段的一部分,但我还没有遇到一个相当简单的过程指南。
这是我的工具集:
詹金斯 – 2.223 版
SonarQube – 版本 8.6.0.39681
Sonar Runner – sonar-runner-dist-2.4
MSBuild 4.6.1.2049 声纳扫描仪
.Net Framework 4.6(与我的项目版本相同)
我有几个关于如何设置的问题:
我是否还需要添加 sonar-project.properties 文件,如果需要,我应该将它放在哪里......在我的 Visual Studio 工作区的项目根目录中,或者仅在 Jenkins 工作区中
如果在 VS 工作区中维护,我是否需要将此文件签出到源代码管理中
如果我必须添加 sonar-project.properties 文件,以下内容是否足够:
sonar.projectKey=<>
sonar.projectName=
sonar.projectVersion=1.0
sonar.login=
sonar.sources=src
sonar.exclusions=/*.doc,/.docx,*/.ipch,/node_modules/,sonar.host.url=http:///
sonar.projectKey=(我从哪里得到这个?我是否需要在 SonarQube 服务器中创建一个项目,如果需要的话,还有该过程的链接)
sonar.projectName=(我要输入我的项目名称。这是正确的吗?)
sonar.projectVersion=1.0(我可以跳过这个吗。如果不是我应该放什么)
sonar.login=(这是什么值?我应该把生成的 Jenkins 令牌放在 SonarQube webhook 中。如果不是我在这里放什么)
sonar.sources=src(我应该在这里放什么值?我的项目是一个 .net mvc 项目。不知道使用什么路径)
sonar.exclusions=/.doc,/.ipch,(我应该在这里放什么值?我可以跳过这个)
sonar.host.url=http:///(我应该在这里放什么值?http://localhost:9000 是否正确?)
-
我在 Jenkins 中编写了我的管道,如下所示:
pipeline { agent any stages { stage('Checkout'){ steps{ checkout([$class: 'GitSCM',branches: [[name: '*/develop']],doGenerateSubmoduleConfigurations: false,extensions: [],submoduleCfg: [],userRemoteConfigs: [[credentialsId: 'Fredo',url: 'https://github.com/Ed877/FinSys.git ']]]) } } stage('Build') { steps { bat "\"${tool 'MSBuild'}\" PaySys.sln /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /t:build /p:Configuration=Release /p:Platform=\"Any cpu\" /p:DeleteExistingFiles=True /p:publishUrl=c:\\inetpub\\wwwroot\\" } } stage('Quality Gate') { environment { scannerHome = tool 'MSBuild_SonarScanner' } steps { withSonarQubeEnv('LocalSonar') { echo "${scannerHome}" bat "${scannerHome}\\SonarScanner.MSBuild.exe begin /k:{project-key} /n:{project-name} /v:build" bat 'msbuild project.sln /t:Rebuild /p:Configuration=Release' bat "${scannerHome}\\SonarScanner.MSBuild.exe end" } } } } }
Sonar 的管道实现是否正确?如果是这样,我应该使用什么值:
/k:{project-key}(我是否像在 sonar-project.properties 文件中一样使用项目密钥)
/n:{project-name}(我是否使用 sonar-project.properties 文件中的项目名称)
bat 'msbuild project.sln ......'(我是否需要将项目的完整路径放在这里,如果是的话,这个路径是否正确:C:\Users\username\source\repos\PaySys\PaySys. sln)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)