On Sun, May 12, 2002 at 03:10:48AM +1000, [EMAIL PROTECTED] wrote:
> We've been talking about this for a while, but it's time to make it happen
> sooner rather than later.
>
> Here's the basic plan we discussed this morning (my time).
>
> Goals
> - Allow plug-ins to be added more easily by the user
> - Allow user to keep their build file the way they want
>
> Details:
> - Plugins are jars with the following contents: plugin.properties,
> plugin-build.xml, plugin-delegators.xml
Having some minimal plugin versioning scheme from the beginning would be
good. Avoids having to retrofit them ala Centipede. Perhaps with a
well-defined <major>.<minor>.<micro> revision system, so plugins can be
automatically updated in the future by a 'maven:download-plugin' task.
> - User downloads plugins and copies them to ${maven.home}/plugins
>
> - The user can tell maven about the plugins by doing: ant
> maven:install-plugins
> - This process: 1) scans the plugins directory comparing jars to
> directories, ala Tomcat with WARs and webapps
> - 2) unzips any 'new' plugins
> - 3) runs a task to parse the init target and produce
> the callbacks
> - 4) runs a task to regenerate a proposed new file -
> delegators.xml with all targets that may be
> delegated to in all available plugins and 'core
> maven'
Sounds fine. This 'merging delegators' approach was proposed as a
replacement for Centipede's automagic.cent.
One question: say I've written a documentation plugin, which needs to be
run whenever the user types 'ant maven:docs'. Or say I write a code
beautifier task, which needs to be run before the javadocs target. How
can this be done?
The example plugin you chose, j2ee, doesn't have this problem because
it's targets always get run at the end.
Essentially, the problem is that execution paths are currently
hardcoded, and adding plugins implies that they must become dynamic.
That sounds like quite a big architectural change. Perhaps plugins could
register themselves with the POM, which could then determine the correct
plugin target execution order, and generate a build.xml appropriately?
As you can see, I'm hazy as to exactly how Maven works, but leveraging
the POM could be a key to implementing plugins properly.
--Jeff
...
> --
> dIon Gillard, Multitask Consulting
> Work: http://www.multitask.com.au
> Developers: http://adslgateway.multitask.com.au/developers
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>