> I have been thinking about using namespaces with antlibs like this:
>
> <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>
>
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