【问题标题】:How to apply and configure gradle plugin in external build file如何在外部构建文件中应用和配置 gradle 插件
【发布时间】:2018-04-17 22:47:09
【问题描述】:

我尝试将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.

我假设插件已应用(因为那里没有发生错误)但配置不起作用。如何在 external-script 中应用和配置插件?

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

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

    根据我的经验,不支持您尝试执行的操作(buildscript 块到 apply 脚本中)。

    【讨论】:

    • 嗯,我明白了。那真不幸。你认为有可能只应用另一个插件并在外部脚本中配置它吗?那么主脚本中的buildscript 步骤和外部脚本中的apply plugin: ...klintkling { ... } 是吗?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      include 'klint' 
      

      【讨论】:

      • 不。这没有帮助。事实上,如果 tha 能奏效,我会感到惊讶,因为根据文档,includeadding the given projects to the build
      猜你喜欢
      • 2022-07-23
      • 2019-02-05
      • 2013-02-14
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多