使用SonarCloud对.NET Core项目进行静态代码分析

本文将介绍如何使用SonarCloud进行.NET Core项目的静态代码分析。SonarCloud是SonarQube提供的基于云的版本,特别针对于开源项目是免费的。

    首先,在sonarcloud.io创建一个账号,你可以使用Github/BitBucket/Microsoft Live账户进行注册,成功后将看到控制面板如下:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

    接下来你需要创建一个组织。
640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

    有了组织,就可以创建一个分析项目了。点击“Analyse New Project”按钮,根据向导填写必要的信息,生成一个用于运行代码分析的授权令牌,注意要安全地保存它。在下一步选择目标语言,设置好项目的代号(Project Key),点击完成后,SonarCloud会显示 一系列使用MSBuild分析运行的步骤。

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

 

    完成上述步骤后,你需要下载sonar scanner for MS Build,.NET Core的版本在这里。

    此时我们需要准备一个.NET Core的应用。

  1. 首先使用"dotnet new mvc"命令创建一个ASP.NET Core MVC项目。

  2. 使用“dotnet new sln”创建sln文件。

  3. 使用“dotnet sln add HelloMVC.csproj”将MVC项目添加至sln文件。

    使用“dotnet "D:\sonar-scanner-msbuild-4.2.0.1214-netcoreapp2.0\SonarScanner.MSBuild.dll" begin /k:"HelloMVC" /d:sonar.organization="dotnetthoughts" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.login="73fd8bc705804e8688b797f0e70dc6d70aa2d9c3"启动scanner。

    如果一切正常,你将看到如下的运行界面:

640?wx_fmt=png

 

    使用“dotnet build”构建应用时,能看到如下警告信息:

640?wx_fmt=png

 

    在最后运行“dotnet "D:\sonar-scanner-msbuild-4.2.0.1214-netcoreapp2.0\SonarScanner.MSBuild.dll" end /d:sonar.login="73fd8bc705804e8688b797f0e70dc6d70aa2d9c3"(注意命令中的end,和前一个命令中的begin相对应),结束代码扫描执行,并将分析结果上传到SonarCloud。再次打开SonarCloud的控制面板,点击前面创建好的项目,就能看到如下的分析结果。

640?wx_fmt=png

 

 

    如果你注意到有15个bug这样的显示,查看明细发现几乎都是JavaScript库的问题,比如Bootstrap或者JQuery,理想状态下我们是不需要分析这些脚本库的,因此我们可以这样执行SonarQube,以过滤掉不需要的文件:“dotnet "D:\sonar-scanner-msbuild-4.2.0.1214-netcoreapp2.0\SonarScanner.MSBuild.dll" begin /k:"HelloMVC" /d:sonar.organization="dotnetthoughts" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.login="73fd8bc705804e8688b797f0e70dc6d70aa2d9c3" /d:sonar.exclusions="/wwwroot/lib/**"。

    再次使用“dotnet build”重新构建项目并完成扫描,项目控制面板会更新成如下所示:

640?wx_fmt=png

 

    是不是很轻松?老板再也不用喷我不管代码质量了。 :)

 

(原文:Static Code Analysis of .NET Core Projects with SonarCloud)

原文地址: http://www.cnblogs.com/BeanHsiang/p/8998461.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Build 2018,给你带来全新的开发者体验, .NET Core 3.0带来桌面支持

Build 2018 主旨演讲的主题是 Azure 云和 AI、物联网、AR等技术,以及开发者相关内容的宣布。在今天的Build大会上,微软宣布目前已有超过7亿台设备运行Windows 10系统。去年这个数字为5亿。Office 365目前每个月有1.35亿活跃的商业用户,去年为…

《你必须掌握的Entity Framework 6.x与Core 2.0》书籍出版

前言到目前为止写过刚好两百来篇博客,看过我博客的读者应该大概知道我每一篇博客都沿袭着一贯的套路,从前言到话题最终到总结,本文依然是一如既往的套路,但是不是介绍技术,也可说是介绍技术,不过是介绍书中…

.NET Core玩转机器学习

ML.NET 专门为.NET开发者提供了一套跨平台的开源的机器学习框架。ML.NET支持.NET开发者不需要过度专业的机器学习开发经验,就能轻松地训练自己的模型,并且嵌入到自己的应用中。一切尽在.NET之中。ML.NET早期是由Microsoft Research开发,近十年…

【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)

滑雪滑雪滑雪 ssl 1202 luogu 1434 pku 1088 题目大意: 有一个N*M的矩阵,每个位置都有一个数,可以从大的数走向小的数,问可走的路最长是多少 原题 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获…

微软Build 2018展示Visual Studio功能:跨系统云编程

5 月 8 日凌晨消息,微软 Build 2018 开发者大会在今天正式来开帷幕。很明显整场发布会被分为了上下两个部分,上半场如果说是聊一些技术实现和愿景,那下半场就应该说是实战说明了。跨平台云端编程了解下微软在现场展示了 Visual Studio&#x…

利用Skywalking-netcore监控你的应用性能

SkywalkingSkyWalking开源项目由吴晟于2015年创建,同年10月在GitHub上作为个人项目开源。SkyWalking项目的核心目标,是针对微服务、Cloud Native、容器化架构,提供应用性能监控(APM)和分布式调用链追踪能力。2017年11月…

async/await 的基本实现和 .NET Core 2.1 中相关性能提升

前言这篇文章的开头,笔者想多说两句,不过也是为了以后再也不多嘴这样的话。在日常工作中,笔者接触得最多的开发工作仍然是在 .NET Core 平台上,当然因为团队领导的开放性和团队风格的多样性(这和 CTO 以及主管的个人能…

使用Swashbuckle构建RESTful风格文档

本次和大家分享的是Swagger to WebApi的nuget包Swashbuckle;因为项目需要统一api文档的风格,并要支持多种开发语言(C#,java,python),所以首先想到的是swagger来构建api文档,本章讲解…

【dfs】【bfs】【链表】 求连通分量 (ssl 1759)

求连通分量 ssl 1759 题目大意 由n个点组成的无向图&#xff0c;求连通在一起的点数最大是多少 原题 求一个图的连通分量 Input n 顶点数(<100) 边 Output 连通分量 Sample Input 8 6 3 1 2 2 5 5 4 4 1 8 7 0 0 Sample Output 4 方法一&#xff08;dfs …

发布 Rafy .NET Standard 版本 Nuget 包

去年年中&#xff0c;Rafy 框架的源码就已经支持了 Net Standard 2.0 版本。其开源代码也已经上传到 Github 中&#xff1a;https://github.com/zgynhqf/rafy/tree/NetStandard2.0 。但是这都只是在源码层面支持 NS2.0&#xff0c;并没有发布其正式的 Nuget 包。要使用这个版本…

你关心才值得分享 | K8S网络安全之访问控制技术实践

(请允许我插播下广告&#xff0c;便于其它伙伴了解趣码 Cloud Coder)还是那句话&#xff0c;你关心才值得分享~最近的一起分享就在5.10本周四晚&#xff0c;精彩千万不要错过&#xff01;Hi&#xff0c;你是不是也曾觉得K8S&#xff08; Kubernetes &#xff09;网络安全话题范…

从Xamarin.Essentials谈Xamarin库的封装

编者语&#xff1a;Xamarin在国内的推广还需要努力&#xff0c;其实这真的是移动端开发的一大福音&#xff0c;毕竟用一份代码的时间可以生成iOS/Android/Windows/Linux/macOS/Tizen多个平台&#xff0c;而且是原生的性能。Xamarin在Build 2018发布的新功能有Xamarin.Essential…

【最短路】【图论】【Floyed】牛的旅行(ssl 1119/luogu 1522)

牛的旅行 ssl 1119 luogu 1522 题目大意 有两堆点&#xff0c;每一堆点之中的任何两个点都一定有相连的路线&#xff0c;连接两堆点中的各一个点&#xff0c;使最远的两个点的距离最短 原题 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称…

用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

什么是RESTREST 是 Representational State Transfer 的缩写. 它是一种架构的风格, 这种风格基于一套预定义的规则, 这些规则描述了网络资源是如何定义和寻址的.一个实现了REST这些规则的服务就叫做RESTful的服务.最早是由Roy Fielding提出的.RPC 风格/getUsers/getUser?id1/c…

使用ML.NET预测纽约出租车费

有了上一篇《.NET Core玩转机器学习》打基础&#xff0c;这一次我们以纽约出租车费的预测做为新的场景案例&#xff0c;来体验一下回归模型。场景概述我们的目标是预测纽约的出租车费&#xff0c;乍一看似乎仅仅取决于行程的距离和时长&#xff0c;然而纽约的出租车供应商对其他…

使用ML.NET实现情感分析[新手篇]

在发出《.NET Core玩转机器学习》和《使用ML.NET预测纽约出租车费》两文后&#xff0c;相信读者朋友们即使在不明就里的情况下&#xff0c;也能按照内容顺利跑完代码运行出结果&#xff0c;对使用.NET Core和ML.NET&#xff0c;以及机器学习的效果有了初步感知。得到这些体验后…

潘正磊:再过三五年 AI会变成开发人员的基本概念

在微软Build 2018开发者大会上&#xff0c;微软公司全球开发平台事业部的资深副总裁潘正磊&#xff08;Julia Liuson&#xff09;接受了界面记者在内的采访。潘正磊在微软西雅图总部带领一千多人组成的团队&#xff0c;微软的开发工具&#xff0c;包括Visual Studio&#xff0c…

qMISPlat入门级使用问题解答一

qMISPlat 2.0(业务配置开发平台) 自2018-4-18号正式开源以来&#xff0c;得到了众多.net core爱好者的关注&#xff0c;现将近半个月以来&#xff0c;大家反馈的一些使用配置方面的问题统一作如下解答。如你对qMISPlat不了解&#xff0c;请查看文章qMISPlat产品介绍。一、从码云…

【模拟】游戏(jzoj 1614)

游戏 题目大意&#xff1a; 有一个n*n的棋盘&#xff0c;有一个坐标在x,y的棋子&#xff0c; 1、2号玩家可以将他向左&#xff0c;向下&#xff0c;向左下&#xff08;45∘45^{\circ}45∘&#xff09;移动若干格&#xff0c;假如他们都是AKIOI聪明绝顶的巨佬&#xff0c;请问…

P4593-[TJOI2018]教科书般的亵渎【拉格朗日差值】

正题 题目链接:https://www.luogu.com.cn/problem/P4593 题目大意 场上有若干只怪&#xff0c;最高的为nnn&#xff0c;每个怪血量不同&#xff0c;有mmm个血量不存在。 不停释放亵渎&#xff08;全场打一&#xff0c;如果有怪死亡就再次生效&#xff09;&#xff0c;每次一…