Как получить выходные данные файла задачи gradle - PullRequest
0 голосов
/ 02 июля 2019

Я хочу создать в Android Studio задачу gradle, которая будет что-то делать с выводом задачи сборки другого проекта

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

Я не могу просто жестко закодировать путь, так как не буду знатьесли someApp был построен как debug или release и пути вывода будут различаться в зависимости от типа сборки.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

задача динамического копирования без использования жестко заданного пути.

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\\"
                    }


                }

            }
    }
0 голосов
/ 03 июля 2019

Я добавил задачу в блок Android сборки build.gradle модуля приложения.

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\\"
                    }


                }

            }
    }
  1. Есть еще один пост для добавления нашей задачи в путь сборки Android. https://discuss.gradle.org/t/how-to-insert-my-task-into-a-pre-defined-build-android-build/29685/3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...