【发布时间】:2014-01-29 14:51:57
【问题描述】:
我正在尝试向我的 Android 项目的 build.gradle 添加自定义任务,以将最终的 APK 和 Proguard 的 mapping.txt 复制到不同的目录中。我的任务取决于assembleDevDebug 任务:
task publish(dependsOn: 'assembleDevDebug') << {
description 'Copies the final APK to the release directory.'
...
}
根据文档,我可以看到如何使用标准 Copy 任务类型进行文件复制:
task(copy, type: Copy) {
from(file('srcDir'))
into(buildDir)
}
但前提是您知道要复制的文件的名称和位置。
如何找到作为assembleDevDebug 任务的一部分构建的APK 文件的确切名称和位置?这可以作为财产吗?感觉好像我应该能够将文件声明为我的任务的输入,并将它们声明为assemble 任务的输出,但是我的 Gradle-fu 不够强大。
我有一些自定义逻辑将版本号注入 APK 文件名,所以我的 publish 任务不能只假设默认名称和位置。
【问题讨论】:
-
您是否尝试过使用 variant.packageApplication.outputFile 像这里描述的 stackoverflow.com/questions/18534313/… ?
-
如果将 from 行替换为“from assembleDevDebug”会发生什么
-
这个“将版本号注入 APK 文件名的自定义逻辑”,你介意分享一下吗?我想要它,但我的 Gradle-fu 也很弱:)
标签: android gradle android-gradle-plugin