In a multi-project scenario, executing ‘gradle :tasks’ can be extremely verbose. Gradle does not only list the tasks from the root-project but also the tasks from the sub-projects are getting listed once with the root-project. This is in fact documented in the user guide.
Still, I would argue that task ‘tasks’ behaves different compared to all other tasks.
Executing a task by name at the root-project level will execute that task with all projects. So it would be expected that ‘gradle tasks’ would be quite verbose.
However executing a task by path should only execute the task with the particular project as specified by the path. So it would be consistent that ‘gradle :tasks’ would returns only the task declared with the root-project.
Unfortunately that’s not the current behavior. It becomes especially unusable when executed with the ‘–all’ switch.