On Sat, 11 Jan 2003 03:58, Brian Ewins wrote: > Peter Donald wrote: > >On Wed, 8 Jan 2003 21:44, Brian Ewins wrote: > >>I don't think indirect dependencies are quite so straightforward. [snip] > > > >I would highly recomend that you use the JDK "Optional Package" or > > "Extension" mechanisms for this. Basically for each jar you define a set > > of extensions that the jar provides and a set of extensions that the jar > > needs. > > Well its the jar versioning mechanism spec you mean[1],
No its not ;) It is the spec that was called "Extension" spec in JDK1.2 and got renamed to the "Optional Package" specification in JDK1.3. It is the same extension that servlet engines and EJB engines must support. See; http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html > Unfortunately this mechanism is currently a fiction created to torment > writers of build tools ;) Its a bit like that. A worst thing is that some things that actually implement it (ie Tomcat) are broken with transitive dependencies in some arrangments ;( > <manifest> > <attribute name="Built-By" value="${user.name}" /> > <section name="${pom.package}"> > <attribute name="Specification-Title" value="${pom.id}" /> > <attribute name="Specification-Version" > value="${pom.currentVersion}" /> > <attribute name="Specification-Vendor" > value="${pom.organization.name}" /> > <attribute name="Implementation-Title" > value="${pom.package}" /> > <attribute name="Implementation-Version" > value="${pom.currentVersion}" /> > <attribute name="Implementation-Vendor" > value="${pom.organization.name}" /> > </section> > </manifest> The Extension spec has a slightly different format. Namely it replaces "Specification-Title" with "Extension-Name" and allows you to specify dependencies via something like Extension-List: trax velocity velocity-Extension-Name: org.apache.velocity velocity-Specification-Version: 1.0 trax-Extension-Name: Java API for XML Parsing trax-Specification-Version: 1.1 trax-Implementation-Title: org.apache.xalan.xslt trax-Implementation-Version: 2.1.0 trax-Implementation-Vendor: Apache Software Foundation Maven could add those dependencies by scanning and selecting dependencies from its POM. Though I am not sure how to determine which dependencies are runtime ... does Maven have a way to do this? > Note several POM entries are reused, instead of having separate entries > in the POM for the different pieces, and use the values above as > defaults. The only way to override the info at present is to write a > manifest by hand. It seems to me like it should be possible - compulsory > even ;) - to have this info in the POM since maven is targeted at > producing a single artifact per project. +1 -- Cheers, Peter Donald *-----------------------------------------------------* * "Faced with the choice between changing one's mind, * * and proving that there is no need to do so - almost * * everyone gets busy on the proof." * * - John Kenneth Galbraith * *-----------------------------------------------------* -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
