ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicola Ken Barozzi <nicola...@apache.org>
Subject Re: override
Date Fri, 01 Aug 2003 12:47:19 GMT

Conor MacNeill wrote, On 01/08/2003 12.27:

> On Fri, 1 Aug 2003 07:40 pm, Jose Alberto Fernandez wrote:
...
>>On the other hand, if you have to import them, then it is because they have
>>to share something or one defines some target for the other, or something.
> 
> I disagree. Importing them into a common build does not imply they have 
> something in common other than they are both fragments I wish to use in my 
> build process. If you want them to interact you should achieve that 
> *explicitly* by operations in the importing build file not by some implicit 
> coincidence of names.

Ok, let me try and comment on this multiple inheritance issue.

  Multiple Inheritance
----------------------

We have showed how avoiding interactions between import lines is 
something that prevents unwanted interactions between targets.

But some have expressed that these interactions are instead *wanted* at 
times, and thus should be possible to be done. AFAIK this is the only 
reason for wanting these interactions, please add if there are more.

As you say above, these interactions should be explicit.


Nick Chalko wrote:

> I used this "feature" in centipede.
> 
> The release antlib has a target called tag-and-release, but it
> depends on a target called tag However tagis expected to be defined
> in a different antlib. Currently it is defined in cvsbuild, but it is
> open for someone to make a vssbuild antlib.
> 
> So I do think cross talk is a "feature" but a feature that can be
> hard to grok.

How can this thing be done while shielding interactions?

With this "feature", the only <import> declaration states that we want 
to use cvs or vss build to override.

I write:

<project default="release">
   <import file="release.xml"/>
   <import file="cvsbuild.xml"/>
</project>

In here there are contracts that are very difficult to see, as the two 
antlibs have to be made basically by the same person, and know each other.

How can I do this more declaratively?

Dunno, some musings:

<project default="release">
   <import file="release.xml"/>
   <import file="cvsbuild.xml"/>
   <target name="release" depends="setcvsbuild, release"/>
</project>

<project default="release">
   <import file="cvsbuild.xml"/>
   <import file="release.xml">
    <property name="release.buildtarget" value="cvsbuild.release"/>
</project>

<project default="release">
   <import file="release.xml">
     <param name="use-import" value="cvsbuild.xml"/>
   </import>
</project>


-- 
Nicola Ken Barozzi                   nicolaken@apache.org
             - verba volant, scripta manent -
    (discussions get forgotten, just code remains)
---------------------------------------------------------------------



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


Mime
View raw message