使用Kotlin DSL在单独的文件中配置插件

时间:2019-10-30 21:45:07

标签: gradle gradle-kotlin-dsl

为了区分不同的插件配置,我使用单独的文件。

例如:

  

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

在根Select Case中,我有这个:

i_tree = 0
for tree_in_forest in FT_cls_gini.estimators_:
    if (i_tree ==3):        
        tree.export_graphviz(tree_in_forest, out_file=dotfile)
        graph = pydotplus.graph_from_dot_data(dotfile.getvalue())        
    i_tree = i_tree + 1
Image(graph.create_png())

要配置它,我转到build.gradle.kts并输入:

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

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

但是找不到detekt.gradle.kts lambda。还尝试过:

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

detekt {
    // configure
}

但是找不到detekt

使用JaCoCo,使用第二种方法没有任何问题,但不适用于Detekt或SonarQube。

如何在单独的文件中配置插件?

谢谢。

2 个答案:

答案 0 :(得分:1)

尝试以下类似方法。我已经在主要功能中声明了一个插件“ sonarqube”。然后,在build.gradle.kts文件的末尾应用文件sonar.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")

使用上述设置,然后我可以运行“ gradle sonarqube”

答案 1 :(得分:0)

我遇到了类似的问题。你需要做的就是打电话

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

更多信息,您可以在这里找到:https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html#configuring-plugins