Mark H. Wilkinson wrote:

I'm wondering if there's a fundamental reason why we couldn't change
maven to build a dependency graph of files with scripts attached to the
arcs, just like make used to do. Statements and scripts would need a way
to expose the lists of source files and target files to the maven core
to build the dependency graph, but that doesn't seem like an
insurmountable problem. The reactor would become a way to stitch
dependency graphs together, saying that when one project runs the
jar:install script to bring $MAVEN_REPO/group/jar/foo-1.0.jar
up-to-date, this is the same artifact that another project has declared
in its project.xml. But the result would be the ability to work out the
minimum set of scripts that need to be run across a large reactor build
purely by checking timestamps on files and without going through the
process of running every step in the process.

I think there is no such fundametal reason. Maven is just following Ant
design in this regard, but I don't see why all of the current functionality could't be provided within the framework you are describing. The piece missing from the picture above are 'phony targets', make targets that don't correspond to a physical file.
Maven would provide many such targets, in fact all of the 'goals'
that the plugins have exactly this nature. In essence Maven (and Ant)
can be though of like make that supports phony targets only.


Once Maven is able to build dependency graph that includes not only
'goals' but also source files, intermediate build products and final
artifacts, a further optimisation available would be using special
timestamp files corresponding to phony targets. It makes sense only
if at least one phony target depends on a real physical source file
of course.

This is definetely a very interesting idea. I hope we can work on
implementing this after 1.0 is out.

R.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to