使用gradlew作为任务执行shell脚本

使用gradlew作为任务执行shell脚本,gradle,android-gradle-plugin,gradlew,Gradle,Android Gradle Plugin,Gradlew,这是我在一般的build.gradle中做的,没有gradlew task play(type: Exec) { commandLine 'sh', './test_work.sh' } build.dependsOn play 这是我运行gradle build时执行的第一个任务 当我运行gradleassembledebug时,我想做同样的事情。以下是我现在正在做的事情: android { compileSdkVersion A buildToolsVersi

这是我在一般的build.gradle中做的,没有gradlew

task play(type: Exec) {
    commandLine 'sh', './test_work.sh'
}

build.dependsOn play 
这是我运行gradle build时执行的第一个任务

当我运行gradleassembledebug时,我想做同样的事情。以下是我现在正在做的事情:

android {
    compileSdkVersion A
    buildToolsVersion "X.Y.Z"

    defaultConfig {
        applicationId "helloWorld"
        minSdkVersion X
        targetSdkVersion Y
    }
    buildTypes {
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                output.outputFile = file("$project.buildDir/outputs/helloWorld.apk")
        }
    }
    debug {
        minifyEnabled false
    }

    release {
        minifyEnabled true
    }
}

    task test(type: Exec) << {
    println "Hi"
    commandLine 'sh', './new_test.sh'
    }
}

repositories {
    ....
    } 

dependencies {
    ....
    }

}

assemble.dependsOn deployGitHooks
android{
编译DKA版本
BuildTools版本“X.Y.Z”
默认配置{
应用程序ID“helloWorld”
明斯克版本X
targetSdkVersion Y
}
建筑类型{
applicationVariants.all{variant->
variant.outputs.each{output->
output.outputFile=file(“$project.buildDir/outputs/helloWorld.apk”)
}
}
调试{
minifyEnabled false
}
释放{
minifyEnabled true
}
}

任务测试(类型:Exec)它为什么要执行?没有任务依赖于它。因此,除非执行gradle测试,否则它不会执行。另外,您正在执行阶段配置任务。我添加了
assembly.dependsOn deployGitHooks
我想做的就是让assembleDebug依赖于它。我该怎么做?我的意思是,当我运行gradle assembleDebug。然后将您的任务命名为
deployGitHooks
。您已将其命名为
test
。并删除
,因此,如果您尝试您提到的内容,它将执行任务并打印“Hi”。但是它不会执行脚本new_test.sh。以下是我如何让它工作的:
task deployGitHooks(type:Exec){def script=“bash git_hooks.sh”.execute()script.in.eachLine{line->println line}
它为什么要执行?没有任务依赖于它。因此,除非执行gradle test,否则它不会执行。此外,您正在执行阶段配置任务。我添加了
assembly.dependsOn deployGitHooks
我想做的就是让AssembledBug依赖于它。我该怎么做?我的意思是,我只想作为第一个任务执行new_test.sh,当我运行gradle AssembledBug时。然后将您的任务命名为
deployGitHooks
。您已将其命名为
test
。并删除
。因此,如果您尝试您提到的内容,它将执行任务并打印“Hi”。但它不会执行脚本new_test.sh。以下是我如何使其工作的:
task deployGitHooks(键入:Exec){def script=“bash git_hooks.sh”.execute()script.in.eachLine{line->println line}