You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jochen Kuhnle <jo...@kuhnle.net> on 2007/07/03 19:34:17 UTC

Proposal: Task Execution Framework for Plugin Tasks

Some plugins can benefit a lot from parallel execution (e.g. native 
compilers, javadoc scanners, report generators, etc.). To not have all 
plugins do their own task management, a task execution framework is 
suggested.

Plugins can build a task tree out of ParallelTaskGroups, 
SequentialTaskGroups and Tasks and hand this tree to Maven for 
execution. Maven then builds a task graph out of this task tree and 
executes it, ensuring correct task order and maximum parallelism.

For example, a compiler plugin builds the following task tree:

ParallelGroup {
	SequentialGroup { CompileTask ScanDependencyFileTask }
	SequentialGroup { CompileTask ScanDependencyFileTask }
	SequentialGroup { CompileTask ScanDependencyFileTask }
	SequentialGroup { CompileTask ScanDependencyFileTask }
}

It then hands the tree to Maven for execution, Maven builds a graph out 
of the tree and executes the tasks, parallelizing where possible. Also, 
if the maximum number of threads is limited, it never executes more 
than this number of tasks in parallel.

In the future, this framework may also simplify clustering of Maven builds.

Regards,
Jochen



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org