Дженкинс, Gradle : Как опубликовать отчет о зависимостях на панели мониторинга Sonar

#jenkins #gradle #sonarqube #maven-dependency-check-plugin

#Дженкинс #gradle #sonarqube #maven-dependency-check-plugin

Вопрос:

В настоящее время мы используем Jenkins free style job для проекта Gradle и используем следующие команды для запуска Sonar и Dependencycheck

 ./gradlew clean build sonarqube dependencyCheckAnalyze 
 

и я получаю следующее сообщение

Анализ /opt/jenkins_slave_home/workspace/AA/package-lock.json — однако каталог node_modules не существует. Пожалуйста, запустите npm install перед запуском проверку зависимостей, создающую отчет для проекта AA_ArbitraryBuild Найдено 0 уязвимостей в проекте AA

и мы можем видеть файл внутри «ws / build / reports /», но он ничего не сканировал.

Ниже приведен файл «build.gardle»

 buildscript {
    repositories {
        maven { url artifactoryRepoUrl }
        mavenCentral()
    }
    dependencies {
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7'
        classpath 'org.owasp:dependency-check-gradle:6.0.3'
    }
}

apply plugin: 'org.sonarqube'
apply plugin: 'org.owasp.dependencycheck'

sonarqube {
    properties {
        property 'sonar.projectName', sonarProjectName
        property 'sonar.projectKey', sonarProjectKey
        property 'sonar.host.url', sonarHostUrl
        property 'sonar.login', sonarAuthToken
        property 'sonar.dependencyCheck.reportPath', sonarDependencyCheckReport
        property 'sonar.dependencyCheck.htmlReportPath', sonarDependencyCheckHTMLReport
    }
}
 

Можете ли вы, пожалуйста, помочь в том, какие дополнительные шаги мне нужно добавить.

Комментарии:

1. Есть ли в вашем проекте какие-либо файлы javascript или используются nodejs? Если да, то хотите ли вы, чтобы они сканировали с помощью SonarQube или хотите их исключить?

2. Да, у нас есть файлы узлов, и нам нужно отсканировать их с помощью SonarQube

3. Затем, перед этапом сканирования сонара, вам также необходимо выполнить npm install , как указано в ошибке.

4. Я могу просмотреть отчет в <JenkinsWorkspace>/builds/reports/dependency-check-report.html но не удалось опубликовать в Sonar Dashboard

5. Перед sonarqube необходимо запустить dependencyCheckAnalyze, поскольку вы хотите, чтобы файлы отчетов существовали до загрузки в sonar.

Ответ №1:

У вас есть все, что нужно, чтобы отправить результат в sonar. Убедитесь, что вы указали правильный путь для отчета об уязвимостях owasp для плагина sonar. Это sonar.dependencyCheck.reportPath и должно указывать на build / reports directroy , и если вы создаете файл отчета html, вы можете указать его с помощью sonar.dependencyCheck.htmlReportPath .

Комментарии:

1. В более новых версиях плагина dependencycheck они устарели reportPath и заменили его определенным jsonReportPath XML-отчеты также устарели.