如何使用Gradle任务从命令行获取参数?

问题描述

我正在尝试使用Gradle任务从命令行获取参数:

class myApk extends DefaultTask {

    @Option(option="apkName",description="apkName for your file")
    String apkName
    
    @TaskAction
    void uploadApk() {
        def arg = "curl -F \"demo${apkName}.apk=" +
                  "@${project.projectDir}\\app\\build\\outputs\\apk\\debug\\app-debug.apk\" " +
                  "https://URL"
        project.exec {
            commandLine("cmd","/c",arg)
        }
    }
}
task uploadApk(type: myApk) { }

但是在终端中输入gradle uploadApk --apkName=foo后,我得到了这种异常:

Problem configuring task :app:uploadApk from command line.
> UnkNown command-line option '--apkName'.

P.S。我已经阅读了这个主题How to pass arguments from command line to gradle),但是对于这个问题似乎没有帮助;(

解决方法

由于上面的评论,我使用-P来解决