【问题标题】:Executing custom Gradle task using scripts使用脚本执行自定义 Gradle 任务
【发布时间】:2021-12-30 05:59:34
【问题描述】:

如何在 build.gradle 中编写将执行此代码的任务:

**gradle hideSecret -Pkey=test123456 -PkeyName=YourSecretKeyName**

我使用这个库:https://github.com/klaxit/hidden-secrets-gradle-plugin 我想在预构建中自动制作 hideSecrets。

像这样的:

task hideSecret {
    doLast {
        exec {
            workingDir "${rootDir}"
            commandLine "hideSecret -Pkey=${key} -PkeyName=${keyName}"
        }
    }
}

afterEvaluate {
    tasks.getByName("preBuild").dependsOn("hideSecret")
}

【问题讨论】:

    标签: android gradle build.gradle


    【解决方案1】:

    您不需要重新定义 hideSecret 任务。只需根据需要设置属性并配置依赖项:

    afterEvaluate {
        project.ext.key = 'test123456'
        project.ext.keyName = 'YourSecretKeyName'
        tasks.getByName("preBuild").dependsOn("hideTask")
    }
    

    【讨论】:

    • 很好,但是如何使用此命令正确编写任务:hideSecret -Pkey=${key} -PkeyName=${keyName}?
    【解决方案2】:

    你可以定义一个 Exec 类型的任务

    task executeCMD(type:Exec) {
      workingDir '.'
      commandLine 'gradle', 'hideSecret', '-Pkey=test123456', '-PkeyName=YourSecretKeyName'
         doLast {
             println "Executed!"
         }
     }
    

    或者你可以像这样将它与 gradle project exec 一起使用

     task executeCMD{
         doLast {
             exec {
                 workingDir "."
                 executable 'gradle'
                 args 'hideSecret', '-Pkey=test123456'', '-PkeyName=YourSecretKeyName'
             }
             println "Executed!"
         }
     }
    

    更多关于执行的信息可以在gradle official doc找到。

    【讨论】:

    • 导致错误:任务失败并出现异常。 ------------ * 出了什么问题:任务':app:executeCMD'的执行失败。 > 启动进程 'command 'build 'test-project'' 时出现问题:原因:error=2,没有这样的文件或目录
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    相关资源
    最近更新 更多