美文网首页
在Gradle中添加Dependency Check,以及在So

在Gradle中添加Dependency Check,以及在So

作者: oh_roy | 来源:发表于2020-07-19 22:29 被阅读0次

    前言

    在项目中需要引入dependency check的工具来扫描相关依赖的库是否有安全漏洞等问题。由于是使用Gradle作为依赖构建工具,以及kotlin作为开发语言,所以选择了owasp dependency checkGradle插件的方式。最后需要将报告上传到sonar进行展示。

    工具

    • Gradle 6.4.1
    • org.owasp.dependencycheck
    • sonarqube

    流程

    引入依赖

    build.gradle.kts中添加相关的依赖:

    id("org.owasp.dependencycheck") version "5.3.2.1"
    id("org.sonarqube") version "2.6.2"
    
    添加Sonar配置项

    sonar的配置项中添加dependency check报告的路径:

    # dependency check reporting
    systemProp.sonar.dependencyCheck.htmlReportPath=build/reports/dependency-check-report.html
    
    添加Sonar的dependency check插件

    sonar中选择Administration的tab,进入Marketplace。在Plugins中搜索并安装如图的插件:

    Plugin
    添加Jenkins Task

    项目中使用了Jenkins作为CI构建工具,所以需要在其中添加一个stage用于将dependency check report上传到sonar中。如下:

    stage('DEPENDENCY CHECK') {
        steps {
            script {
                def dependencyCheck = true
                try {
                    timeout(time: 20, unit: 'SECONDS') {
                        input 'Dependency Check?'
                    }
                } catch(e) {
                    dependencyCheck = false
                }
    
                if (dependencyCheck){
                    sh './gradlew dependencyCheckAnalyze'
                }
            }
        }
    }
    
    stage('SONAR ANALYSIS') {
        steps {
            script {
                sh './gradlew sonarqube -Dsonar.host.url=http://${HOST}:9000 -Dsonar.login=${SONAR_CREDS}'
            }
        }
    }
    

    由于dependency check并不是每次跑pipeline都需要,所以通过timeout+input的方式来手动run这一个stage。当跑完./gradlew dependencyCheckAnalyze后就会生成相关的report文档,默认是html格式,可以通过配置修改。

    当dependency check跑完之后,就应该执行./gradlew sonarqube命令将本地report上传到sonarqube来分析。sonar的host.urllogin参数既可以配置在sonar对应的properties,也可以在run命令的时候传入。这里是因为将creds配置到了Jenkins中,所以在Jenkins file中通过获取凭证的方式来配置。

    成果

    当Jenkins CI跑完Sonar Analysis后,就可以去Sonar上查看对应的dependency check的report。如图

    Jenkins Sonar

    相关文章

      网友评论

          本文标题:在Gradle中添加Dependency Check,以及在So

          本文链接:https://www.haomeiwen.com/subject/xvfdkktx.html