On 21/04/2009, at 10:51 AM, Antony Blakey wrote:

> On 21/04/2009, at 10:22 AM, Rich Hickey wrote:
>
>> I'm unfamiliar with the POM version coordinate system - any hints?
>
> My comment was in support of Laurent's proposal. I'm a relative  
> maven newb, but this is my take:
>
> POMs use the concept of a coordinate, which is  
> <groupId>:<artifactId>:<packaging>:<version> to identify a  
> particular artifact e.g. library. GroupId + Artifact Id is a  
> qualified name - think java package name. Packaging specifies how  
> the artifact is packaged e.g. jar or war, but it doesn't contribute  
> the id of the project. Version numbers are as you expect, but can be  
> suffixed with '-SNAPSHOT', which effectively creates a distinct  
> subspace of versions ordered by creation date. By depending on a  
> 'a.b.c-SNAPSHOT' version, you get the latest (by date) artifact  
> marked with 'a.b.c-SNAPSHOT'. When you release the artifact you  
> remove the '-SNAPSHOT'. In effect the suffix creates two different  
> versioning spaces, one of which is strictly determined by the  
> hierarchic numeric ordering, and another that allows duplicates  
> ordered by date within a specific hierarchically ordered version.  
> AFAIK, an 'a.b.c-SNAPSHOT' version will not satisfy a request for  
> 'a.b.c' e.g. -SNAPSHOT is not a further qualifier.

This BTW presumes a fairly simplistic dependency selection mechanism.  
In a previous life I did a lot of work with dependency algebras, and a  
far more powerful solution for managing configuration is to allow  
artifacts to be annotated with multidimensional versioning attributes  
organized by feature, using an ordered unification based configuration  
resolution mechanism. Somewhat like versioned requires/provides but  
with richer semantics.

My experience was such systems are too complicated for mass  
deployment, and their use needs to be motivated by a significant  
configuration management requirement, which is why I suggest sticking  
to the far simpler maven/ivy POM model.

Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

All that is required for evil to triumph is that good men do nothing.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to