Miha Markic
11/14/2025, 9:22 AMgradle.startParameter.taskRequests.toString()
?Николай Клебан
11/14/2025, 9:47 AMMiha Markic
11/14/2025, 9:48 AMMiha Markic
11/14/2025, 9:49 AMНиколай Клебан
11/14/2025, 9:51 AMMiha Markic
11/14/2025, 9:52 AMНиколай Клебан
11/14/2025, 9:54 AMMiha Markic
11/14/2025, 9:54 AMMiha Markic
11/14/2025, 9:55 AMMiha Markic
11/14/2025, 9:56 AMproductFlavors {
create("stage") {
tasks.regsiter("stage_flavor_custom") { ...Miha Markic
11/14/2025, 9:57 AMMiha Markic
11/14/2025, 9:58 AMНиколай Клебан
11/14/2025, 10:03 AMMiha Markic
11/14/2025, 10:09 AMНиколай Клебан
11/14/2025, 10:15 AMVampire
11/14/2025, 10:36 AMMiha Markic
11/14/2025, 10:38 AMMiha Markic
11/14/2025, 10:38 AMНиколай Клебан
11/14/2025, 10:39 AMgradle assembleFlavor1Debug assembleFlavor1Release assmebleFlavor2DebugMiha Markic
11/14/2025, 10:40 AMНиколай Клебан
11/14/2025, 10:40 AMMiha Markic
11/14/2025, 10:41 AMVampire
11/14/2025, 10:41 AMVampire: FFS - can we just have a property, possibly a map(dimension, value) of the active variantI have no idea, I don't do Android
Miha Markic
11/14/2025, 10:42 AMНиколай Клебан
11/14/2025, 10:44 AMMiha Markic
11/14/2025, 10:44 AMVampire
11/14/2025, 10:44 AMMiha Markic
11/14/2025, 10:44 AMMiha Markic
11/14/2025, 10:45 AMНиколай Клебан
11/14/2025, 10:48 AMMiha Markic
11/14/2025, 10:48 AMMiha Markic
11/14/2025, 10:48 AMMiha Markic
11/14/2025, 10:51 AMMiha Markic
11/14/2025, 10:53 AMMiha Markic
11/14/2025, 10:57 AMНиколай Клебан
11/14/2025, 10:58 AMMiha Markic
11/14/2025, 10:59 AMMiha Markic
11/14/2025, 10:59 AMVampire
11/14/2025, 10:59 AMMiha Markic
11/14/2025, 10:59 AMMiha Markic
11/14/2025, 11:00 AMMiha Markic
11/14/2025, 11:00 AMVampire
11/14/2025, 11:01 AMMiha Markic
11/14/2025, 11:01 AMVampire
11/14/2025, 11:02 AMVampire
11/14/2025, 11:02 AMyep, but if make preDebugBuild dependent on my custom task, then my custom task will run before itOf course
Miha Markic
11/14/2025, 11:03 AMMiha Markic
11/14/2025, 11:03 AMMiha Markic
11/14/2025, 12:30 PMMiha Markic
11/14/2025, 12:31 PMproject.tasks.findByName("preDebugBuild")
but only build is thereVampire
11/14/2025, 12:31 PMfindByName is not a good ideaMiha Markic
11/14/2025, 12:31 PMMiha Markic
11/14/2025, 12:32 PMMiha Markic
11/14/2025, 12:32 PMVampire
11/14/2025, 12:33 PMfindByName you only get tasks that are already registered at the time you call that method.
And at the same time you break task-configuration avoidance for that task if it is found.Vampire
11/14/2025, 12:34 PMpreDebugBuild task, you do tasks.named { it == "preDebugBuild" }.configureEach { ... }Vampire
11/14/2025, 12:34 PMtasks.preDebugBuild exists, but then the findByName would also have found itMiha Markic
11/14/2025, 12:35 PMproject.tasks.named { it == "preDebugBuild" }.configureEach { println("found one") }
val preDebugBuild = project.tasks.findByName("preDebugBuild")Miha Markic
11/14/2025, 12:35 PMMiha Markic
11/14/2025, 12:36 PMVampire
11/14/2025, 12:38 PMnamed { ... } finds the task immediately if it is already registered, but also finds the task as soon as it is registered and gives you a domain object collection with that task.
With configureEach you register a configuration action that is executed iff the task is realized, usually because it needs to be executed.Miha Markic
11/14/2025, 12:40 PMMiha Markic
11/14/2025, 12:40 PMMiha Markic
11/14/2025, 12:44 PMMiha Markic
11/14/2025, 12:46 PMMiha Markic
11/14/2025, 12:47 PMMiha Markic
11/14/2025, 12:57 PMMiha Markic
11/14/2025, 12:57 PMVampire
11/14/2025, 12:57 PMhehe, if task is registered it also doesn't appear in findByName, ughOf course it is. But still, do not use it. You break task-configuration avoidance even if you know the task is registered already.
is there a way to force task configuration?Yes, but don't do it, you just waste the time of everyone running that build and not wanting to run that task
Vampire
11/14/2025, 12:58 PMto get the instance I have to call get()Don't do this either. Practically any
Provider.get() at configuration time breaks laziness and wastes time on every build invocation.Miha Markic
11/14/2025, 12:58 PMVampire
11/14/2025, 12:58 PMVampire
11/14/2025, 12:59 PMval customDebug by tasks.registering
tasks.named { it == "preDebugBuild" }.configureEach { dependOn(customDebug) }Vampire
11/14/2025, 12:59 PMdependsOn is usually only appropriate if preDebugBuild is a lifecycle task, which I don't know as I don't do Android, but given the naming that could be the case.Miha Markic
11/14/2025, 1:00 PMMiha Markic
11/14/2025, 1:01 PM> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :app:checkDebugAarMetadata UP-TO-DATE
> Task :app:processDebugNavigationResources UP-TO-DATE
> Task :app:compileDebugNavigationResources UP-TO-DATE
> Task :app:generateDebugResValues UP-TO-DATE
> Task :app:mapDebugSourceSetPaths UP-TO-DATE
> Task :app:generateDebugResources UP-TO-DATE
> Task :app:mergeDebugResources UP-TO-DATE
> Task :app:packageDebugResources UP-TO-DATE
> Task :app:parseDebugLocalResources UP-TO-DATE
> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksDebug UP-TO-DATE
> Task :app:processDebugMainManifest UP-TO-DATE
> Task :app:processDebugManifest UP-TO-DATE
> Task :app:processDebugManifestForPackage UP-TO-DATE
> Task :app:processDebugResources UP-TO-DATE
> Task :app:compileDebugKotlin UP-TO-DATE
> Task :app:javaPreCompileDebug UP-TO-DATE
> Task :app:compileDebugJavaWithJavac NO-SOURCE
> Task :app:mergeDebugShaders UP-TO-DATE
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:generateDebugAssets UP-TO-DATE
> Task :app:mergeDebugAssets UP-TO-DATE
> Task :app:compressDebugAssets UP-TO-DATE
> Task :app:processDebugJavaRes UP-TO-DATE
> Task :app:mergeDebugJavaResource UP-TO-DATE
> Task :app:checkDebugDuplicateClasses UP-TO-DATE
> Task :app:desugarDebugFileDependencies UP-TO-DATE
> Task :app:mergeExtDexDebug UP-TO-DATE
> Task :app:mergeLibDexDebug UP-TO-DATE
> Task :app:dexBuilderDebug UP-TO-DATE
> Task :app:mergeProjectDexDebug UP-TO-DATE
> Task :app:mergeDebugJniLibFolders UP-TO-DATE
> Task :app:mergeDebugNativeLibs UP-TO-DATE
> Task :app:stripDebugDebugSymbols UP-TO-DATE
> Task :app:validateSigningDebug UP-TO-DATE
> Task :app:writeDebugAppMetadata UP-TO-DATE
> Task :app:writeDebugSigningConfigVersions UP-TO-DATE
> Task :app:packageDebug UP-TO-DATE
> Task :app:createDebugApkListingFileRedirect UP-TO-DATE
> Task :app:assembleDebug UP-TO-DATEMiha Markic
11/14/2025, 1:02 PM