7 votes

Configurer le plugin dans un fichier séparé en utilisant le DSL de Kotlin

Pour différencier les configurations des différents plugins, j'utilise des fichiers séparés.

Par exemple :

./build.gradle.kts
./detekt.gradle.kts
./settings.gradle.kts
./module1
./module2
...

Dans la racine build.gradle.kts J'ai ça :

plugins {
    id("io.gitlab.arturbosch.detekt") version DependencyVersion.Detekt
}

buildscript {
    dependencies {
        classpath(io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.1.1)
    }
}

Et pour le configurer, je vais dans le detekt.gradle.kts et mettre :

apply(plugin = "io.gitlab.arturbosch.detekt")

detekt {
    // configure
}

Mais detekt lambda n'est pas trouvé. J'ai aussi essayé avec :

apply(plugin = "io.gitlab.arturbosch.detekt")

configure<io.gitlab.arturbosch.detekt.Detekt> {
    // configure
}

Mais il ne trouve pas .Detekt .

Avec JaCoCo, je n'ai eu aucun problème à utiliser la seconde approche, mais cela ne fonctionne pas avec Detekt ou SonarQube.

Comment puis-je configurer les plugins dans un fichier séparé ?

Merci.

1voto

skipy Points 684

Essayez quelque chose comme ci-dessous. J'ai déclaré un plugin "sonarqube" dans mon gradle principal. J'applique ensuite le fichier sonar.gradle.kts vers la fin du fichier build.gradle.kts.

    build.gradle.kts:
    plugins {
      id("org.sonarqube") version "2.8" apply false
    }
    ...

    apply(from="$rootDir/gradle/includes/sonar.gradle.kts")    

    gradle/includes/sonar.gradle.kts:
    apply(plugin="org.sonarqube")

En utilisant une configuration comme ci-dessus, je peux alors lancer "gradle sonarqube"

0voto

Paukdcn Points 23

J'ai rencontré un problème similaire. Tout ce que vous devez faire est d'appeler

configure<io.gitlab.arturbosch.detekt.extensions.DetektExtension> {             
    // configure
}

Plus d'informations, vous pouvez trouver ici : https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html#configuring-plugins

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X