Wannheden, Knut wrote:
>> <project>
>> <.. init properies .../>
>> <use xmlns:antcontrib="antlib:${ant-contrib.jar}"
>> xmlns:antelope="antlib:${antelope.jar}">
>>
>> <target name="test">
>> <antelope:if>
>> ....
>> </antelope:if>
>> <antcontrib:foreach ...>
>> </target>
>> </use>
>>
>> </project>
Or even:
<antelope:if xmlns:antelope="antlib:${ant-contrib.jar}" />
In any case - if ComponentHelper is used, it'll get
"antlib:/path/to/ant-contrib.jar" as first param and if as the second param
- and any helper in the chain can create the task.
I don't like passing the .jar very much - but that's probably the only
way if we want to use META-INF/antlib.xml.
The alternative would be to use /net/sf/antcontrib/antlib.xml (i.e.
descriptor in a package ), and use "antlib:net.sf.antcontrib" as namespace.
Then getResource() can be used, and we don't have to worry about
multiple jars providing META-INF/antlib.xml - which forces us to use the
.jar file directly.
Costin
>>
>
> That is almost the same thing as I had in mind. Although I've been
> thinking about some slight variations to this, where no top-level element
> like <use/>
> would be necessary. The Jelly style would be:
>
> <project xmlns:antcontrib="antlib:${ant-contrib.jar}"
> xmlns:antelope="antlib:${antelope.jar}">
> <.. init properies .../>
>
> <target name="test">
> <antelope:if>
> ....
> </antelope:if>
> <antcontrib:foreach ...>
> </target>
>
> </project>
>
> Here <target/> is still toplevel and the antlibs are loaded on project
> initialization (or on demand). But I'm not sure I like this automagical
> loading. Something inbetween would be this:
>
> <project>
> <.. init properies .../>
> <use resource="${ant-contrib.jar}" ns="antlib:ant-contrib"/>
> <use resource="${antelope.jar}" ns="antlib:antelope"/>
>
> <target name="test" xmlns:antcontrib="antlib:ant-contrib"
> xmlns:antelope="antlib:antelope">
> <antelope:if>
> ....
> </antelope:if>
> <antcontrib:foreach ...>
> </target>
>
> </project>
>
> which is slightly more verbose, but cleaner IMO. Especially since the
> antlib loading is explicit.
>
> --
> knut