第一步,在SonarQube上安装CheckMarx插件,具体请参考Setting Up the SonarQube Plugin - Integrations Documentation - Confluence
第二步,在SonarQube上配置CheckMarx
先在SonarQube上创建一个Project,在【】Project Setting】里选择【CheckMarx】
输入Checkmarx的站点信息和用户名与密码,点击【Test Connection】,如果成功会显示【Connection successful】
登录成功之后,在下面选择对应的CheckMarx里对应的Project的名字。
CheckMarx设置完毕。
第三步,启用CheckMarx的扫描规则。
创建一个Profile:
在弹出的创建Profile的信息中,选择新的Profile的Parent, 这里可以选择【CheckMarxJava(Built In)】,也可以选择【Sonar Way(Built In)】
点击【Create】创建成功,再到【Quality Profile】页面
根据语言,选择指定的Profile,点击【Activiate More Rules】,
点击[Bulk Change],在点击[Activate in XXXXXX], 会弹出一个对话框:
.
点击【Apply】就将 SonarQube 的规则也导入到创建的DemoRule这个Profile里。
下面的演示是把刚创建的Profile设置为默认的Profile,如果Sonar的Project没有设置Quality Profile,就会使用默认的Profile。
创建好了Profile之后,到项目的信息页面,
选择【Project Settings】->【Quality Profile】,会弹出一个对话框,如下:
选择上面步骤中创建的Profile,点击【Save】就可以针对这个Project启用这个Quality Profile了。
第四步,设置Quality Gate
按照下面的红色框,跳转到Quality Gate 页面:
点击【Create】按钮
在弹出的对话框中,设置一个Gate的名字 ,然后,点击【Save】
在新的页面里点击【Add Condition】,弹出对话框如下:
在这个对话框里可以使劲儿中Gate的具体条件,包括哪一种类型的漏洞大于多少个,就认为指令不合格。一旦质量没有达到Gate设置的标准,项目就会显示如下结果:
创建好Quality Gate之后,就可以到Project页面设置一个Project的Gate:
也可以在Quality Gate页面设置一个gate是Default,这样就不需要每一个项目都去单独设置了。