在Sonar中配置license和copyright的检查

时光怂恿深爱的人放手 提交于 2020-02-27 13:35:58

现在开源代码越来越多,代码头部的license和copyright信息在开发中容易被遗忘。那么就有必要做一些相关的检查,例如在持续集成CI中加入这方面的检查。当然,目前有很多集成在IDE中的工具来自动添加license和copyright信息,这是主动的措施,本篇要描述的是被动检查的机制。

本篇主要介绍在SonarCloud(Sonarqube也类同)中,如何添加这项检查功能。在以后的篇幅中,也会介绍其他不同的方式。

首先,简单介绍一下SonarCloud(SonarCloud是针对开源代码的检查,而Sonar也有本地的私有版本SonarQube。),它主要用于做代码的静态检查,包括扫描缺陷、安全威胁、代码单元测试覆盖率、代码重复率以及代码的坏味道等,常用于代码的持续集成中。官方地址https://sonarcloud.io/。打开后可发现可以使用Github、Bitbucket、AzureDevOps以及Gitlab账户直接授权登录。

本篇以Github账户为例,使用Github账户登录后,点击右上角头像,在下拉列表里My Organizations里会出现Github中的组。可以点击加号->Analyze new project来配置扫描项目,也可以通过在Github中配置CI来配置自动扫描(可以参看上一篇文章来配置CI)。

添加好了项目,我们就可以开始了。

步骤:

1.打开项目所在的组,如果没有在Github中创建组,有一个默认的账户所在的组。打开Quality Profiles选项卡,可以发现有很多针对不同编程语言的sonar默认的profiles(Sonar way),以Java语言为例,像下图这样。

Profile里面包含有很多Rules,而这Rules里就是sonar静态检查的规则,可以打开查看详细的内容。点击上图中的Rules的具体数字399。显示了几种类型的Rule,有Bug、Vulnerability、Code Smell和Security Hotspot。

 

2.SonarCloud提供了检查license和copyright的rule,但是在默认的Sonar way这个profile中并没有启用。下面我们来启用它。首先,新建一个profile,返回到Quality Profiles页面,点击右边的create

添加一个名字,选择Java,Parent里可以选择内置的Sonar way作为基础。点击创建后,Java-super这个profile就创建好了,点击右侧的配置图标->Active More Rules

然后再左边的搜索框内搜索copyright,可以找到Track lack of copyright and license headers这一个rule,点击Active激活。

在激活页面,可以选择rule的严重程度,并且将你所要检查的headers信息的内容填写在headerFormat里,如果是正侧匹配的,需要把下面的isRegularExpression选成true,最后Activate。这个profile就创建完了。

3.添加上面的profile到项目中

在组页面选择你的项目,然后Administration->Quality Profiles

找到Java的条目,选择Java-super这个我们刚创建好的profile即可。

4.验证扫描

扫描刚才的项目,在Issues页面中可以看到Code Smell选项中有一个issue,就是我们刚刚配置的rule扫描出来的问题。点击进去可以查看详细的是哪一个文件没有添加license和copyright header。

 

至此,我们的license和copyright检查就添加完毕了。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!