gpt4 book ai didi

android - Gradle 总是执行任务

转载 作者:行者123 更新时间:2023-11-29 01:13:56 25 4
gpt4 key购买 nike

我为 Gradle flavors 添加了 3 个配置。我向它们添加了一些 zip 依赖项。我在 preBuild 之后解压这个 zip 文件。问题是我的解压缩任务总是执行甚至 gradle 文件或依赖项没有改变。这个解压缩任务需要时间,我正在开发 ndk 应用程序。每次当我用我的解压任务改变我的静态库时,gradle 认为库改变了所以它重新构建。

如果 gradle 文件未更改,我想阻止执行解压缩任务。这看起来像一个小小的缓存机制。这是我的 gradle 任务。

dependencies {
compile "com.google.android.gms:play-services:9.4.0"
compile 'com.android.support:multidex:1.0.0'
compile 'com.android.support:appcompat-v7:24.+'
compile 'com.android.support:design:24.+'
compile fileTree(dir: 'src/main/libs', include: ['*.jar'])
alphaCompile 'my alpha release static library from private maven repository in zip type'
betaCompile 'my beta release static library from private maven repository in zip type'
prodCompile 'my prod release static library from private maven repository in zip type'
}


task unzip(group: "Static Libraries", description: "Unzip all static libraries") {
doFirst{
// get zip files from configurations
// unzip and move static libraries to destination folder
}
}
}
preBuild.finalizedBy (unzip)

最佳答案

很难给您一个确切的答案,因为您已经排除了 doFirst block 中的代码,但看起来您可以利用 Copy如果您只是获取配置文件然后将它们解压缩到其他地方,则执行此任务:

tasks.create('unzip', Copy) {
dependsOn configurations.alphaCompile
from {
project.configurations.alphaCompile.collect { zipTree(it) }
}
into project.file("${project.buildDir}/unzipDir/")
}

如果您确实需要定义自定义任务,则需要在 configuration 期间注册输入和输出。使用 Task.getInputs() 相和 Task.getOutputs()以便 Gradle 可以在执行前进行检查。

关于android - Gradle 总是执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com