Я добавил 3 конфигурации во вкусы Gradle. И я добавляю к ним некоторые zip-зависимости. Я разархивирую этот zip-файл после preBuild. Проблема в том, что моя задача распаковки всегда выполняет даже файл gradle или зависимости, которые не изменились. Эта задача распаковки требует времени, и я разрабатываю приложение ndk. Каждый раз, когда я меняю свои статические библиотеки с помощью задачи распаковки, 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
. Вы не объявляете какие-либо входы/выходы для своей задачи, поэтому Gradle не может знать о своей актуальной проверке. - person mkobit   schedule 11.12.2016{ }
для определения задачи. Эта часть выполняется на этапе конфигурации. Если вы определите конфигурацию там, вы столкнетесь с проблемами (см. эту страницу в Руководство пользователя). Я немного поработаю над ответом на вопрос. - person mkobit   schedule 12.12.2016