ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <>
Subject Re: EasyAnt POC
Date Mon, 07 Apr 2008 13:07:14 GMT
On Mon, Apr 7, 2008 at 2:22 PM, Stefan Bodewig <> wrote:

> Hi all,

Hi Stefan,

> this is just from going through the docs and looking at the patches to
> Ant.
> Antlets
> =======
> I like the idea.  We should probably add ~/.ant/antlets to the search
> path as well.
> What is the reason you put each module into a separate directory?
> Couldn't we get away with a single build file per Antlet as well?

I thought it might be useful if an antlet wants to have properties, or even
a custom task defined with a taskdef. A directory per antlet makes this
cleaner IMO.

> Extends and Use
> ===============
> I'm not sure I fully grasp the difference.  Currently we prefix target
> names as well, just in addition, don't we?

Yes, but this is not enough. Imagine you have two files like this:
<target name="init" />
<target name="run" depends="init" />

<target name="init" />
<target name="test" depends="init" />

Then if you import both, and execute the "test" target, you can't be sure
the init target of the same build file will be executed. It depends on the
order in which the files are included.

Given that, would <use>
> prevent me from invoking the non-prefixed targets or where exactly is
> the difference between use and current import?
> I must admit that I don't like the explicit ":" used in your examples
> to create a prefix delimiter.  I'd rather have a standard delimeter
> and apply that automatically.

Yes, I wasn't really happy with it anyway.

> Phase
> =====
> Should we enforce that the special targets created as phases are
> empty?

Well, I'm not sure. The problem is who is responsible for defining the phase
content? By enforcing they are empty, we can be sure they are used as
placeholders to organize the build, and that's all.

> Does phase mapping come from a specific use-case?

Not really, it's inspired by configuration mapping in Ivy, which is a key of
integration of modules developped by different people at different time. The
same can apply to build modules development, and phase mapping can help to
integrate pretty different build modules. It's also useful if you want to
execute some targets at a different than what they were designed to be,
giving more control to the build integrating the build modules.

> Is
>  <phase mapping="foo => baz" />
> easier to approach than
>  <phasemap from="foo" to="bar"/>
> - I don't really know.

Maybe the latter approach is better. The first one is inspired by Ivy
configuration mapping syntax, but it's reversed (in Ivy the arrow means
"depends on". So I guess I finally prefer the latter approach.

> You talk about "before" targets but I don't seem them implemented,
> yet.  Am I missing something?

I don't remember, but you're probably right. I haven't implemented
everything that I first though about, just what I need for the first POC.


> Modules
> =======
> Looking through the examples I see there is a lot more going on than
> the docs say (versioning seems to be implied by the version number
> being part of the directories.  Need to look through the examples
> before I can say more.
> Stefan
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

Xavier Hanin - Independent Java Consultant

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message