On 04/05/2009, at 1:47 PM, Jason van Zyl wrote:

- the model builder should stand-alone to build fully inherited/ interpolated models - the project builder should bring in any runtime information in the form of properties, and really should be a very thin layer over the model builder

+1

- the lifecycle executor should calculate the build plan, and by this point every bit of configuration for each mojo should be calculated - the plugin manager does nothing except build up the class loader and execute the mojo with the already built up and fully validated configurations (i still don't like the expression evaluator which mixes composition and configuration but i'm still thinking about that one). you should not execute 4 of N plugins in your build plan and then find out a required parameter is missing. Every last bit needs to be know and made available to external tooling so that we could have real POM validation in m2eclipse and provide real help to correct the problems. only knowing while the plugins is executing is not good enough.

Agree in spirit, though likewise still thinking through the implications, such as: - the split between plugin config using default-value / expression vs config supplied in the POM
- non ${project.} expressions
- values that might change during execution and need to be set "just in time"

I think this was also some of the stuff John bumped up against where interpolating too early with the 2.1.0 work.

Even if it's not entirely backwards compatible, it might be worth starting to enforce complete separate of the configuration phase from the execution phase - so anything that needs to be used during execution would need to be done in the execute() method itself rather than via an expression.

Something else that would help here is the ability for a mojo to describe it's outputs in some way (the classic case of adding a generated source directory) so that modifications could actually be computed as part of the build plan.

Cheers,
Brett



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to