gradle - Gradle找不到在buildscript中声明的插件

标签 gradle build.gradle

我试图在可重用文件中排除常见的Gradle任务。这是一个build-root.gradle文件的摘录:

buildscript {
    // Repository declaration
    ext {
        isSnapshot = version.endsWith("-SNAPSHOT")
        repos = {
            def mavenRepo = { repoName, repoUrl ->
                maven {
                    credentials {
                        username System.env.<some env var>
                        password System.env.<some env var>
                    }
                    name repoName
                    url repoUrl
                }
            }
            mavenLocal()
            mavenRepo('repo1', 'https://repo1.url')
            mavenRepo('repo2', 'https://repo2.url')
            mavenRepo('repo3', 'https://repo3.url')
        }
    }

    // Versions and libraries declaration
    ext {
        versions = [
                ... some stuff
                // Gradle
                gradleRelease           : '2.8.1',
                ... more stuff
        ]
        libs = [
                ... some stuff
                // Gradle
                gradleRelease           : "net.researchgate:gradle-release:$versions.gradleRelease",
                ... more stuff
        ]
    }

    repositories repos
    dependencies {
        classpath libs.gradleRelease
    }
    apply plugin: 'net.researchgate.release'
}
... more common stuff

这个想法是让子项目从该文件中应用并从中获取所有好处。

在“应用插件”行上,出现以下错误->找不到ID为'net.researchgate.release'的插件。

我打印了libs.gradleRelease字符串,看起来不错:net.researchgate:gradle-release:2.8.1

我们目前正在使用Gradle 5.2.1,但我也尝试了6.0.1-同样的错误。有什么想法为什么找不到插件?顺便说一句,这不是该特定插件专用的,我尝试了其他插件,但仍然收到相同的错误。

最佳答案

拉扯我剩下的头发并将头撞在墙上后,我碰到了这个=> https://discuss.gradle.org/t/how-do-i-include-buildscript-block-from-external-gradle-script/7016

@Peter_Niederwieser的相关评论:

“第二,不支持将构建脚本块外部化为脚本插件。(这是一个棘手的问题,无法想到实现此问题的好方法。)您可能必须忍受一些重复,至少对于请记住,项目的“buildscript”块中指定的依赖项对所有子项目都是可见的,因此,只要不需要脚本插件中可用的依赖项,您只需在根项目的构建中声明它们脚本。”

这正是我想要做的。我不会在这里骂人...

关于gradle - Gradle找不到在buildscript中声明的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648336/

相关文章:

android - 如何基于 Google 的 Android 最新拨号器应用程序(或基于 Vanilla 的 ROM,如 Lineage OS)制作拨号器?

shell - 通过gradle编写环境变量未显示在系统变量中

android - 更新后出错......Gradle依赖缓存可能已损坏

android - 第一次无法解决android gradle build的问题

java - 如何在 Gradle 项目中包含 JMonkey 测试数据 jar?

android - 添加 native 代码的库后 Dexguard 崩溃

android - Gradle 构建失败

android - 依赖于 'aar' 的 Gradle Android 单元测试

java - 两种配置编译gradle

configuration - Gradle使用文件结构拆分测试任务