一. 功能描述
代码包扫描是提供给伙伴产品上架前,进行的源代码扫描,通过sonarqube扫描源代码,通过条件为Bug和漏洞数量清零。
二. 操作步骤
在devops平台https://ecodevops.kingdee.com/ 访问持续发布->代码扫描->代码包扫描。如下图:
新增记录,选择构建代码包的苍穹版本,尽可能选择版本跟本地开发版本一致,避免因版本不一致而导致的编译失败,若没有您的苍穹版本,请联系我们补充版本记录。
参数说明:
苍穹补丁版本:选择最接近您本地的苍穹版本。
代码包:上传java项目工程,包含工程名称,支持zip文件
构建jar包:第三方包,若引用了非苍穹提供的第三方包,需要将第三方包一并上传,作为构建依赖的基础。支持zip文件保存即会进入到任务后台,自动进行代码扫描。可在列表页面,刷新获取扫描结果。
若扫描结果为异常,表示扫描出错,需要查看日志分析失败的原因,
若扫描结果为质量不过关,表示扫描最终结果有bug或漏洞,点击查看日志,跳转到sonarqube平台,查看bug和漏洞并进行修复,修复完成后,再上传扫描即可。若扫描结果为质量达标,则表示质量过关。
扫描质量过关之后,点击查看日志跳到sonarqube平台,下载pdf文件。
三. 常见问题
扫描报包不存在,引入类异常,如下图:
可能原因:1. 若是报方法调用不对,那可能是苍穹版本不对应引起。2. 若是报import的错误,那可能是build.gradle引入包的时机不对,需要改成compile扫描提示sonarqube不存在。如下图:
原因:gradle工程引用sonarqube,需要将sonarqube模块配置到build.gradle中,所以需要在build.gradle的最前面,引入以下内容。若是复杂的gradle工程,可百度搜下如何加入sonarqube。buildscript {
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
mavenLocal()
mavenCentral()
}
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6"
}
}
apply plugin: 'org.sonarqube'
执行扫描日志提示第三方包报错,但是第三方包已经上传了。
原因:使用eclipse或idea开发项目,习惯在eclipse或idea,直接引入第三方包。但是gradle本身并没有引入这些第三方包。需要在build.gradle中声明第三方包,并引入。
本文转载自:Devops生态平台用户指引
作者:Devops生态平台
原文链接:https://kdcrp.kingdee.com/web/#/9?page_id=103