ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clifton Craig <ccr...@gbg.com>
Subject Re: How to reuse a fileset as a Class-Path in a manifest
Date Tue, 08 Nov 2005 19:59:54 GMT
Use the map element! Genius! Why didn't I think of that? Works like a charm 
and it's MUCH better than the ad-hoc beanshell I was using in the interim! 
Thanx Dominque!
-- 
Clifton C. Craig, Software Engineer
ccraig@gbg.com
On Tuesday 08 November 2005 2:41 pm, Dominique Devienne wrote:
> > I'm trying to re-use a fileset pointing to a lib folder containing all of
> > my jars as a manifest Class-Path entry for my project.
> > [...]
> > I don't want to use any complexity or trickery to acheive my result (for
> > example a custom task or a script task) but I just don't see any other
> > way. I'm hoping to keep my build file relatively simple as I am trying to
> > create some standard practices for my team. Is there a better way?
>
> Here's the way to do it using pure Ant.
>
> 1) Define a property using the location attribute. This ensure it's
> "canonical".
>
> <property name="jar-all" location="acme/jar/all" />
>
> 2) Define your fileset. I usually reuse the property above
>
>     <fileset id="jars" dir="${jar-all}">
>       <include name="*.jar" />
>      </fileset>
>
> 3) Define the path
>
>     <path id="cp"> <fileset refid="jars" /> </path>
>
> 3bis) Convert the path into a String suitable for a Jar's manifest:
>
>     <pathconvert property="classpath" refid="cp"
>                  pathsep=" " dirsep="/">
>       <map from="${jar-all}" to="all" />
>     </pathconvert>
>
> The trick here is to use the "canonical" file name to remove the
> absolute path names in your jars, and map it to what you want. Here,
> the jar with the in-manifest Class-Path references jars in a all/
> subdir, so that's what I map to. The to attribute could also be empty
> (to="").
>
> 4) Create the jar
>
>     <jar ...>
>       <manifest>
>         <attribute name="Class-Path" value="${classpath}"/>
>         ...
>
> But really, I need to put the custom task I have into Ant, because
> it's a recurring question. Now that I have a lot of free time on my
> hands, I'll do that... --DD

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message