如何获取Gradle任务的文件输出 [英] How do I get file outputs of gradle task

查看:437
本文介绍了如何获取Gradle任务的文件输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Android Studio中创建gradle任务,该任务将对另一个项目的build任务的输出进行某些操作

I want to create a gradle task in Android Studio that will do something with the output of the build task of another project

task foo {
   dependsOn ':someApp:build'
   ...
   copy results of :someApp:build to another location
   ...
}

我不能仅仅对路径进行硬编码,因为我不知道someApp是作为debug还是release构建的,并且输出路径会根据构建的类型而变化.

I can't just hardcode a path as I won't know if someApp was built as debug or release and the output paths will vary based on the type of build.

推荐答案

动态复制任务,无需使用硬编码路径.

dynamic copy task without using hardcoded path.

applicationVariants.all {
        variant->
            variant.outputs.each { output ->
                println("..a")
                task "copy${variant.buildType.name}"(type:Copy){
                    println("${variant.buildType.name}")
                    dependsOn app:assembleDebug

                    copy {
                        from "$buildDir\\outputs\\apk\\${variant.buildType.name}\\app-${variant.buildType.name}.apk"
                        into "C:\\Users\\rkumar8\\AndroidStudioProjects\\MyApplication\\app\\build\\outputs\\apk\\"
                    }
// you can add multiple copy if required, i am doing it here release build was named app-release-unsigned.apk
                    copy {
                        from "$buildDir\\outputs\\apk\\${variant.buildType.name}\\app-${variant.buildType.name}-unsigned.apk"
                        into "C:\\Users\\rkumar8\\AndroidStudioProjects\\MyApplication\\app\\build\\outputs\\apk\\"
                    }


                }

            }
    }

这篇关于如何获取Gradle任务的文件输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆