Je travaille avec un projet ndk utilisant gradle-experimental. J'ai une bibliothèque «préconstruite» qui est vraiment une bibliothèque que je génère avec un appel de shell dans une tâche gradle. J'essaye de le rendre très facile pour ce projet pour courir dehors de la boîte, ainsi je dois pouvoir exécuter cette buildTask avant les versions de gradle. J'ai regardé dans preBuild.dependsOn ...
, mais malheureusement, ce n'est pas pris en charge dans expérimental. Des idées? J'ai actuellement un fichier .sh
qui l'exécute, mais j'essaie de m'en sortir. Editer: Ne pas dupliquer car gradle-experimental ne supporte pas preBuild comme je l'ai déjà dit.Comment puis-je obtenir gradle pour exécuter une tâche avant de construire?
0
A
Répondre
0
Hypothèses:
- NDK
moduleName
est Foo - supportées
ABI
est armeabi Variants
sont debug et libérer
Vous devez créer une combinaison pour toutes les variantes et ABI vous avez ajouté aux abiFilters.
Créer une classe RuleSource dans build.gradle
class FooRuleSource extends RuleSource {
@Mutate
void validatePreCompileFooDebugEnvironmentArmeabi(
@Path('tasks.compileFooArmeabiDebugSharedLibraryFooMainCpp') Task compileTask) {
validateEnvironment(compileTask)
}
@Mutate
void validatePreCompileFooReleaseEnvironmentArmeabi(
@Path('tasks.compileFooArmeabiReleaseSharedLibraryFooMainCpp') Task compileTask) {
validateEnvironment(compileTask)
}
private void validateEnvironment(compileTask) {
compileTask.dependsOn("desiredTask")
}
}
Créer la tâche dans votre build.gradle
:
task desiredTask(type:Exec){
commandLine 'echo', 'hi'
}
double possible de [? Exécuter la tâche avant de construire android gradle] (http://stackoverflow.com/questions/18532415/execute-task-avant-android-gradle-build) –
Sauf que c'est dans gradle-experimental. S'il vous plaît lire les différences et ce que j'ai écrit. – iHowell