如何在外部构建文件中应用和配置gradle插件

时间:2018-03-14 07:27:19

标签: gradle build.gradle

我尝试将build.gradle文件拆分成几个较小的文件,以减小大小并封装不同的功能。我最终得到了:

// build.gradle
plugins {
  id "org.jetbrains.kotlin.jvm" version "1.2.30"
}

apply from: 'klint.gradle'

// klint.gradle
buildscript {
  repositories {
   maven { url "https://plugins.gradle.org/m2/" }
  }
  dependencies {
    classpath "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:3.1.0"
  }
}


//apply plugin: "org.jlleitschuh.gradle.ktlint"
apply plugin: org.jlleitschuh.gradle.ktlint.KtlintPlugin

ktlint {
    verbose = true
    reporter = ReporterType.JSON
}

但是当我运行./gradlew ktlintCheck时,我得到了:

* Where:
Script '...klint.gradle' line: 14

* What went wrong:
A problem occurred evaluating script.
> Could not find method klint() for arguments [klint_bg1dwp9kv02sa992h3mtpaomq$_run_closure1@1c656f64] on root project 'proj' of type org.gradle.api.Project.

我认为插件已应用(因为没有发生错误),但配置不起作用。如何在外部脚本中应用和配置插件?

3 个答案:

答案 0 :(得分:1)

在开始时评估buildscript块,并确定哪些插件和任务可用于构建脚本的其余部分。

根据我的经验,您不会支持您要执行的操作(buildscript阻止到apply脚本)。

答案 1 :(得分:0)

根据我的经验,您应该在base build.gradle文件和外部构建文件中都有一个buildscript代码块的副本。

我不喜欢这样的设计,但这是目前实现目标的唯一方法。你可以尝试一下。

答案 2 :(得分:-1)

如果您没有settings.gradle文件,请创建一个并添加以下行

include 'klint'