我在 Sonarcloud 和 Gitlab CI 中为自动化支付了帐户,我使用 Visual Studio 和集成的 SonarLint for C#。有时我想从 VS 手动运行分析,而不是每次都使用 Gitlab 运行器。有没有办法绕过管道?原因是我对运行时间有限制,并且我只想在清理来自 SonarLint 的代码警告时进行提交和运行管道。
2 回答
声纳扫描仪
您可以使用 SonarScanner 在本地触发 SonarCloud 分析:
- SonarScanner for MSBuild作为独立的可执行文件。
- 与NuGet一起安装的.NET Core 全局工具,也称为可执行文件。
- 下载SonarScanner CLI二进制文件并从命令行运行它。
MSBuild 选项如下所示:
SonarScanner.MSBuild.exe begin /k:"project-key"
MSBuild.exe <path to solution.sln> /t:Rebuild
SonarScanner.MSBuild.exe end
.NET Core 全局工具如下所示:
dotnet tool install --global dotnet-sonarscanner
dotnet sonarscanner begin /k:"project-key" /d:sonar.login="myAuthenticationToken"
dotnet build <path to solution.sln>
dotnet sonarscanner end /d:sonar.login="myAuthenticationToken"
因为您需要在构建之前和之后调用 SonarScanner。您可以使用Build Events在 Visual Studio 中集成 SonarScanner 命令。每次构建时添加命令并自动运行分析。如果您不想每次构建时都运行 SonarScanner,请创建一个新的自定义构建配置 (例如 Debug、Release、Analyze)。PreBuildEvent.bat
PostBuildEvent.bat
您需要在 SonarCloud 中为您的项目密钥生成一个私有令牌。最终报告也将在该项目准备就绪后提供。
声纳
如果您不需要更新 SonarCloud,只想查看代码分析结果,可以使用SonarLint Visual Studio 扩展。您可以使用名为Connected Mode的功能将 SonarLint 与 SonarCloud 连接以下载常用配置。
连接模式不会将问题推送到服务器。相反,它的目的是配置 IDE,使其使用与服务器相同的设置。
说明摘要(有关详细信息,请参阅连接模式):
- 打开 Team Explorer Home 选项卡并单击 SonarQube 图标
- 单击连接...以显示连接对话框
- 选择服务器并输入您的凭据
- 选择组织(仅限 SonarCloud)
- 选择要绑定的 Sonar 项目
SonarLint 然后将从服务器获取所需的设置并创建本地配置文件
您的代码将被实时分析(在您键入时),或者您可以运行完整的代码分析,如下所示:
- 右键解决方案->分析->运行代码分析
您无法从 Visual Studio 执行此操作,但您可以将其设为 powershell 脚本。