【问题标题】:How to upload file using Gradle task properly?如何正确使用 Gradle 任务上传文件?
【发布时间】:2020-08-23 16:21:57
【问题描述】:

我正在尝试通过 Gradle 将调试 apk 文件上传到服务器。我为它使用了一个特殊的名称,例如“demo-testing.apk”或“demo-first.apk”。

class Apk extends DefaultTask {
    String apkName

    @TaskAction
    void uploadApk() {
        exec {
            commandLine(
                    "cmd",
                    "-c",
                    "curl -F \"demo${apkName}.apk=" +
                            "@${DEFAULT_BUILD_DIR_NAME}/outputs/apk/debug/app-debug.apk\" " +
                                    "https://URL"
            )
        }
    }
}

tasks.register("first", Apk) {
    group = 'apkUploads'
    description = 'Uploads first apk'
    apkName = '-first'
}

但由于此异常,它没有执行(在命令行参数中有正确的 URL):

Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method exec() for arguments [Apk$_uploadApk_closure1@58ed1
b0a] on task ':first' of type Apk.

谁能告诉我我做错了什么?

【问题讨论】:

  • 错误信息很清楚:Task 类上没有这样的方法exec:你应该从Project 类调用exec(见docs.gradle.org/current/dsl/…)=> @ 987654328@ 而不是 exec

标签: android gradle build.gradle


【解决方案1】:

所以感谢上面的评论,我应该调用 project.exec 而不是 exec 并且它起作用了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多