ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Alberto Fernandez" <>
Subject RE: [DISC] details of task library concept
Date Fri, 25 May 2001 05:29:09 GMT
> From: Rob Oxspring []
> > From: Jose Alberto Fernandez []
> >
> It all look great to me, and to help get a hold of the bigger
> picture i've
> tried to flesh out the example a bit, including the
> ant/log/doc aspects that
> Peter is plugging.  The only problem being that I'm already getting an
> overload of ':'s - these can't be changed at the XML level,
> but maybe a
> switch to '#'s or similar would add an extra level of clarity for the
> ant-level references?
> <project name="tomcat">
>    <import lib="" task="ftp"/>
>    <projectref location="jasper.xml" name="jasper"/>
>    <projectref location="catalina.xml" name="cat"/>
>    <target name="build" depends="jasper#compile, cat#compile"
> doc:description="Glues jasper and catalina together"/>
>        <javac dest="${build}" log:level="verbose"
> ant:failonerror="false"/>
>        <jasper#jspc .../>
>        <zip file="" src="${build}"/>
>        <ftp ant:classloader="" server=""
> dest="/tomcat/src" src="${build}"/>
>    </target>
> </project>
> I would like to see examples with a little more meat on them,
> in particular
> how the ant/antcall tasks fit in - presumably the same multi-project
> dependancy graph would be used by the antcall task, so could
> all 'ant' tasks
> be dropped and replaced by 'antcall' and a 'projectref'?

I do not see <projectref> as a task, as we know it. It is not something that
executes (there is no target). It is still close to an <include> and I do
not think it would make too much sense to include an entire project inside a
<target>. So <projectref> is more like a declaration outside of all targets.

<ant*> on the other hand creates a new project environement in which
properties will be re-evaluated and changed. They are complementary. One
gives you a sort of multiple inheritance (you inherit the in your
environment the properties and target of another project) the other gives
you method (target) invocation with parameter passing.

Both are needed.

Jose Alberto

> Rob

View raw message