Как определить, какие папки / каталоги плагин CodeNarc Gradle будет сканировать / анализировать - PullRequest
0 голосов
/ 13 июня 2019

Что я хочу сделать?

Я хочу сообщить CodeNarc, какие папки / каталоги предполагается сканировать / анализировать.

Я не могу найти что-либо об этом на официальном сайте (http://codenarc.sourceforge.net/) или в документации плагина gradle (https://docs.gradle.org/current/userguide/codenarc_plugin.html).

Результаты моих исследований:

Единственное, что я нашел, было в документации плагина Grails CodeNarc (https://grails.org/plugin/codenarc).) Там сказано, что вы можете указать, какие исходные файлы анализируются CodeNarc. Но, похоже, это относится только кПлагин Grails CodeNarc, а не версия Gradle.

Документация Gradle CodeNarc описывает 3 задачи, одна из которых со следующими:

codenarcSourceSet — CodeNarc

    Runs CodeNarc against the given source set’s Java source files

Основываясь на описании, которое я мог бы выполнитьчто-то с этим. Но когда я ищу все задачи, мой проект gradle получил только «codenarcMain» и «codenarcTest».

My Set-up:

Мой проект gradleполучил следующую структуру:

.git
    -> ...
.gradle
    -> ...
config
    -> codenarc -> MyRuleset.groovy
gradle
    -> ...
src
    -> main
            -> groovy -> ...
            -> ressources
    -> test
            -> groovy -> ...
            -> ressources
vars
    -> ...
.gitignore
build.gradle
gradlew
gradlew.bat
ReadMe.txt
settings.gradle

Мой build.gradle выглядит так:

plugins {
    // Apply the groovy plugin to add support for Groovy
    id 'groovy'
    id 'codenarc'
}

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    maven { url "http://repo.jenkins-ci.org/releases/" }
    maven { url "http://central.maven.org/maven2/" }
}

dependencies {
    // https://mvnrepository.com/artifact/org.jenkins-ci.main/jenkins-core
    compile group: 'org.jenkins-ci.main', name: 'jenkins-core', version: '2.179'

    // https://mvnrepository.com/artifact/org.jenkins-ci.plugins/cloudbees-folder
    compile 'org.jenkins-ci.plugins:cloudbees-folder:5.3@jar'

    // https://mvnrepository.com/artifact/org.jenkins-ci.plugins.workflow/workflow-api
    compile 'org.jenkins-ci.plugins.workflow:workflow-api:2.35@jar'

    // https://mvnrepository.com/artifact/org.jenkins-ci.plugins.workflow/workflow-job
    compile 'org.jenkins-ci.plugins.workflow:workflow-job:2.32@jar'

    // https://mvnrepository.com/artifact/com.cloudbees/groovy-cps
    compile group: 'com.cloudbees', name: 'groovy-cps', version: '1.28'


    // https://mvnrepository.com/artifact/org.codenarc/CodeNarc
    codenarc group: 'org.codenarc', name: 'CodeNarc', version: '1.1'

    // Use the latest Groovy version for building this library
    implementation 'org.codehaus.groovy:groovy-all:2.5.6'

    // Use the awesome Spock testing and specification framework
    testImplementation 'org.spockframework:spock-core:1.2-groovy-2.5'
}

codenarc {
    configFile = file("${project.projectDir}/config/codenarc/MyRuleset.groovy")
    reportFormat = 'html'
    reportsDir = file("$buildDir/reports/StaticCodeAnalysis")
    maxPriority1Violations = 0
    maxPriority2Violations = 0
    maxPriority3Violations = 0
}

Конкретная цель:

Я в основном хочу CodeNarcтакже сканировать скрипты внутри "VARS"папка / каталог.Но, похоже, это делается только внутри src / main / groovy и src / test / groovy.Я также не знаю точно, какие пути по умолчанию, потому что я не нашел его в документации.

1 Ответ

0 голосов
/ 17 июня 2019

Похоже, все, что вам нужно сделать, это добавить следующее в свой gradle.build

sourceSets {
    main {
        groovy {
        srcDirs = ['src/main', 'vars']
        }
    }   
}

Таким образом CodeNarc сканирует все, что находится внутри папки src / main, и все, что находится внутри папки vars.(https://discuss.gradle.org/t/gradle-codenarc-plugin-how-to-change-target-folder-for-the-scan/32102/2)

...