Jason van Zyl wrote:

>Hi,
>
>I was just playing around with plugins and currently I'm using a normal
>project.xml descriptor as a plugin is in essence a project. The only one
>I've converted is the JXR plugin: it has sources, eventually some docs.
>But other plugins like checkstyle have dependencies like the checkstyle
>JAR, antlr and regex.
>
>I was thinking of making another plugin descriptor but I think I can get
>away without doing it if we allow adding metainfo to the POM. 
>
Plugins definitely need a way to specify dependencies.

JRefactory, JDiff, Clover plugins all need extra jars, and we can't 
afford to have
them included in Maven's dependencies (it would become huge really soon !).

The mecanisms that we use in the POM are also valid for the plugins, IMO.
Maybe we could simply have a
<project><dependencies>...</dependencies></project> file in the plugin
dir (or packed in a jar with all the other items), very
small and easy to understand if you're used to the POM.

>So that
>any element can have metainfo that can be utilized in any arbitrary
>fashion. My example here is for the dependencies of a plugin:
>
><dependencies>
>  <dependency>
>    <id>clover</id>
>    <version>1.0</version>
>    <metainfo>
>      <classloader>root</classloader>
>    </metainfo>
>  </dependency>
>
>  <dependency>
>    <id>jdepend</id>
>    <version>1.0</id>
>    <metainfo>
>      <classloader>root.maven</classloader>
>    </metainfo>
>  </dependency>
></dependencies>
>
>So in the example the clover plugin needs pushed into the root
>classloader while the jdepend jar is fine in the root.maven classloader.
>
>The metainfo could also be used to export reports the plugin provides or
>whatever. I just want to try and reuse the project.xml and I think this
>would be generally useful where projects might adding any sort of
>information which they want to report on, or use for processing. Then if
>particular items become widely used we can add them to the POM later on.
>
Sounds good.

I'd like some "technical" information:

What will use that information ?
 From what you write, I'd say that plugins will pull that information 
from their POM,
such as 
${pom.dependencies.getDependency("jdepend").metainfo.classloader} or
something like that ... do we agree ?

What would be the difference with plugins properties ?
What is the advantage in taking them from a POM instead of from properties ?
Maybe a difference in the nature of informations that will live there ?

Anyway, the idea is appealing. Some plugins really need different 
classloaders,
and that could be a way to say that. The only think I hope is that my 
POM will
still be able to be processed whatever plugins are installed in the 
Maven I use.
Some people might simply remove all the plugins except "compile",
"compile", and "test", because it is really all that is needed for an 
application to run.

Thanks,
St�phane


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


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

Reply via email to