如何配置Gradle Android项目,以便将IDE构建的版本APK保存到我选择的路径(例如项目根目录),而不是深埋在构建文件夹中?
我已将此添加到应用构建文件的defaultConfig部分,以明智地命名APK并且效果很好,但是如何指定它的位置,或者在构建完成后移动它?
archivesBaseName = "AppName-v$versionName" // AppName-v1.2.3-release.apk
更新:
如果我手动运行Gradle任务,我在应用级Gradle构建文件中创建了一个成功复制版本APK的任务:
task copyReleaseApk(type: Copy) {
from 'build/outputs/apk'
into '..' // project root, one-level above "app"
include '**/*release.apk'
}
但是我还没有找到一种方法让任务在最后一次构建任务后自动运行。我试过这个:
assembleRelease.finalizedBy(copySupportFiles)
但这导致"无法获得未知属性' assembleRelease'对于com.android.build.gradle.AppExtension类型的对象。"
我也试过这个:
assembleRelease.finalizedBy(copySupportFiles)
似乎没有做任何事情。
答案 0 :(得分:1)
这有效(在app build.gradle文件的android标签中)。似乎需要afterEvaluate才能引用最初不存在的packageRelease之类的任务。
task copyReleaseApk(type: Copy) {
from 'build/outputs/apk'
into '..' // folder above the app folder
include '**/*release.apk'
}
afterEvaluate {
packageRelease.finalizedBy(copyReleaseApk)
}
答案 1 :(得分:0)
可以在项目的根目录build.gradle
中定义:
allprojects {
buildDir = "/path/to/build/${rootProject.name}/${project.name}"
}