gradle - 插件中出现奇怪的关闭错误

标签 gradle

我不明白为什么我通过这个插件收到关闭错误。对此申请:

class MetadataPlugin implements Plugin<Project> {
    Project project
    MetadataExtension extension

    static final METADATA_REPORT = 'metadataReport'
    static final METADATA_REPORT_TASK = ':' + METADATA_REPORT

    @Override
    void apply(Project project) {
        this.project = project

        // Create and install the extension object
        extension = project.extensions.create('metadata', MetadataExtension)


        // *** create the tasks ***
        def ignore = project.tasks.create(METADATA_REPORT, MetadataReportTask)
        ignore.group = PLUGIN_GROUP
        ignore.description = 'Gets the detailed information for this project and formats it into a user readable report'

        // *** validate the build file ***
        project.afterEvaluate {

            def String ext_hash = project.extensions.metadata.project_hash

            def String hash = {
                if (ext_hash == null) {
                    throw new InvalidUserDataException(
                            "You must configure the metadata:project_hash value before running any form of build"
                    )
                }
                return ext_hash
            }
            throw new InvalidUserDataException(hash)
        }
    }
}

添加到它这个build.gradle
plugins {
    id 'metadata'
}
metadata {
    project_hash '123123123'
}

并产生此错误。
19:44:49.934 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
19:44:49.935 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
19:44:49.935 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
19:44:49.935 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] A problem occurred configuring root project 'junit9025097301225311002'.
19:44:49.935 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > com.devops.gradle.metadata.MetadataPlugin$_apply_closure1$_closure2@5bff38f7
19:44:49.935 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 

我不明白为什么错误不是123123123,为什么它会给我应用闭包错误?扩展名不过是一个简单的pojo。

最佳答案

project_hash是变量,因此您必须直接分配值:

metadata {
    project_hash = '123123123'
}

您当前正在使用此功能(例如 project_hash('xyz'))在此处不适用

关于gradle - 插件中出现奇怪的关闭错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40274050/

相关文章:

android - 已安装 GnuPG,但来自 gradle 任务的 "command not found"

android - Gradle:有和没有<<运算符的定义任务的区别

android - 如何解决异常:Gradle任务assembleDebug失败,退出代码为1

scala - Gatling Gradle Build将Scala Simulations和Config文件添加为Fatjar

dependencies - Gradle 多项目定义对根项目的依赖

gradle - 在 IntelliJ 中调试 gradle 内部类

java - Java程序未编译IntelliJ Idea

gradle - 没有任务的Gradle脚本如何工作?

android - 将图片下载器添加到Flutter应用时出错

android - 如何让 gradle 编译本地版本的毕加索