tasks.whenTaskAdded { task -> if (task.name.startsWith("publish")) { def match = task.name =~ '^publish(.*)(Release|Debug)PublicationTo(.*)$' dependsOn(tasks.getByName("assemble${match[0][1]}${match[0][2]}")) } }