【问题标题】:how to extract the plugin declarations to another file?如何将插件声明提取到另一个文件?
【发布时间】:2022-10-13 00:28:45
【问题描述】:

使用 Gradle 7.5.1,我想在一个文件中声明我的所有插件,然后在我的主要 build.gradle.kts 中声明该文件中的 apply。像这样的东西:

./gradle/plugins.gradle.kts:

plugins {
    id("net.researchgate.release") version "3.0.2" apply false
    id("com.google.cloud.artifactregistry.gradle-plugin") version "2.1.5" apply false
}

然后在 build.gradle.kts 中:

apply(from = "${project.projectDir.path}/gradle/plugins.gradle.kts")

allprojects {
    apply(plugin = "net.researchgage.release")
    apply(plugin = "com.google.cloud.artifactregistry.gradle-plugin")
    ... etc.

一些背景知识,我正在尝试提取由不同存储库共享的所有常见构建组件,因此我可以git submodule 全面共享这些脚本。目标是在可以重用的集中存储库中找出所有常见的东西。

错误信息如下:

此处不得使用 plugins {} 块。如果您需要强制应用插件,请改用 apply() 或 apply(plugin = "id")

【问题讨论】:

    标签: gradle gradle-plugin gradle-kotlin-dsl


    【解决方案1】:

    好的,找到了。首先,plugins.gradle.kts 必须从settings.gradle.kts 应用。其次,这有效(主要的 gradle 构建脚本):

    plugins {
        id("net.researchgate.release")
        id("com.google.cloud.artifactregistry.gradle-plugin")
    }
    
    allprojects {
        apply(plugin = "java")
        apply(plugin = "java-library")
        apply(plugin = "maven-publish")
        ... etc.
    

    但这不会:

    allprojects {
        apply(plugin = "java")
        apply(plugin = "java-library")
        apply(plugin = "maven-publish")
        apply(plugin = "net.researchgate.release")
        apply(plugin = "com.google.cloud.artifactregistry.gradle-plugin")
        ... etc.
    

    不知道为什么...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2020-04-18
      相关资源
      最近更新 更多