I think these are all good ideas. In particular I'm keen on having some kind
of 'depends on a project.xml' feature, just as this level of indirection
will enable us to avoid cutting and pasting dependency information all over
the place. I'm particularly keen on using this for projects that have a core
part and optional extra bits and pieces which are seperate, but related,
maven projecst (like the Jelly core and optional tag libraries).

James
----- Original Message -----
From: "Stephen Haberman" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, May 27, 2002 6:36 AM
Subject: dependencies


> I've been pondering how dependencies could work in Maven over the last
> few days and just thought I'd post my thoughts to the list.
>
> The idea I just had was abstracting out versioning from jar names to
> enable Maven to automatically get the latest builds for you. This may or
> may not be a good idea, and I seem to remember someone had said
> something about standardized naming before, so there may already be
> plans like it. But generally if I just want the latest 2.x version of
> Turbine, I could put in a dependency that would somehow reflect that and
> Maven could automatically upgrade from 2.1 to 2.2 when it becomes
> stable.
>
> E.g, inside the dependency element from project.xml:
>
> <version>2</version> - could be any 2.x version
> <release>released</release> - only released versions - turbine-2.1.jar
> <release>stable</release> - b2/b3/etc. versions are allowed -
> turbine-2.2-b2.jar
> <release>any</release> - dev versions are also allowed -
> turbine-3.0-dev.jar
>
> And perhaps the <jar> element could be completely dropped; instead, let
> Maven deduce the correct jar to download based on the desired
> version/release info and what's available in the repository.
>
> The other small example of something I'd think would be cool is for a
> dependencies.xml for each repository (be it local or remote...?).
>
> There were three cases I came up with that I thought would be useful:
> referring to another project.xml on the web (either the same repository
> or a different one), referring to another project.xml in CVS, and the
> last just simple file linking (both same repository and different? And
> then should this allow the same non-strict filename feature outlined
> above? I don't know if that's safe or not.).
>
> The only thing is that referring to other repositories and CVS servers
> could get slow, so perhaps the dependency tree that gets built should be
> cached. Again, I'm not quite sure if this is a good idea or not, I'm
> just throwing things out.
>
> Sample dependencies.xml (completely contrived):
>
> <jars>
>   <jar name="torque-3.0-b2.jar">
>     <http-project name="torque-project-3.0-b2.xml"
> url="http://jakarta.apache.org/turbine/jars"/>
>   </jar>
>   <jar name="turbine-3.0-alpha.jar">
>     <cvs-project name="project.xml" cvsRoot="..." passfile="?"
> module="jakarta-turbine-3" tag="3.0-alpha?" />
>   </jar>
>   <jar name="commons-io.jar">
>     <file>commons-xo.jar</file>
>     <file
> remote-lib="http://share.whichever.com";>village-1.5.3.jar</file>
>   </jar>
> </jars>
>
> The ideas are rather rough, but I thought they might be of use.
>
> Thanks,
> Stephen
>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>


_________________________________________________________
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