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 -~----------~----~----~----~------~----~------~--~---