jest to możliwe do wykonania zadania Gradle przed wywołaniemwykonać zadanie przed budową gradle androida?
gradle build
coś podobnego prekompilacji. Ktoś proszę o pomoc. Czy coś takiego jest możliwe i jak?
jest to możliwe do wykonania zadania Gradle przed wywołaniemwykonać zadanie przed budową gradle androida?
gradle build
coś podobnego prekompilacji. Ktoś proszę o pomoc. Czy coś takiego jest możliwe i jak?
Można to zrobić w ten sposób:
task build << {
println 'build'
}
task preBuild << {
println 'do it before build'
}
build.dependsOn preBuild
Dzięki temu zadaniu preBuild
automatycznie zostanie wezwany przed build
zadania.
Jeśli chcesz uruchomić preBuild
w fazie konfiguracji (poprzednim przykładzie uruchomić preBuild
w execution
fazy) można to zrobić w ten sposób:
task build << {
println 'build'
}
build.doFirst {
println 'do it before build'
}
Więcej o Gradle cyklu kompilacji można tutaj http://www.gradle.org/docs/current/userguide/build_lifecycle.html czytać.
Dla tych, którzy zastanawiają się, jak to zrobić w projekcie Android, to pracował dla mnie:
task myTask << {
println "here's a task"
}
preBuild.dependsOn myTask
Czy można to nazwać przed 'assembleDebug'? –
@IgorGanapolsky sprawdź proszę moja odpowiedź powyżej, jak to –
Jest jeszcze jeden sposób, jak to zrobić
task myTask << {
println "here's a task"
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleDebug') {
task.dependsOn myTask
}
Próbuję zrobić to dla zadania 'preBuild', ale wydaje się nie brać. – atreat
Nie wydaje się, że preBuild faktycznie przychodzi przez 'whenTaskAddedded'. Nie widzę tego, kiedy wydrukuję 'task.name' w tym zamknięciu. – atreat
'if (task.name == 'preDebugBuild' || task.name == 'preReleaseBuild')' działa dla mnie zamiast 'preBuild'. – atreat
jak wykonać plik wsadowy po wygenerowaniu pliku APK w tej lokalizacji "\ app \ build \ outputs \ apk"? Moje wymaganie jest jak raz xyz.apk wygenerowany w "\ app \ build \ outputs \ apk" location Chcę przenieść ten plik automatycznie do lokalizacji "D:/Xyz". –
Objaśnienie drugiego przykładu jest błędne. 'doFirst' doda zamknięcie jako pierwszą czynność zadania dla zadania kompilacji. Akcje zadaniowe są wykonywane w fazie realizacji. – helpermethod
Metoda Task.leftShift (zamknięcie) została uznana za przestarzałą i ma zostać usunięta w Gradle 5.0. Zamiast tego użyj Task.doLast (Action). –