Jose Alberto Fernandez wrote:

>> IMO:
>> - default = resolve based on the local basedir ( so all
>> existing build.xml
>> can be imported and will behave as expected )
>> - explicit override = an attribute to import that allows you
>> to override
>> the basedir.
>> 
> 
> What happens when I need things like xslt files to be found relative to
> the imported project, but I need other files of the actual build to
> be relative to the global build (like the builddir to use).

Pick one - and pass it as the basedir. Use explicit paths for the other.


> My point is that things are not that simple, it is not an all or nothing
> situation, you will have to be able to pick and choose because some files
> depend on the static layout of the project and other depend on the
> dynamic dependencies make by the imports.

It's not "all or nothing". Is choose a default that solves common use 
case and allow override for more advanced users.

If you look in jakarta ( or gump ), most build files depend on the 
layout of the project ( <javac src="src/share" ... /> ). If you would
import some of the existing buildfiles - most likely the default that
makes sense is relative to the imported files. 

Choosing a default is subjective - and it doesn't have a perfect 
answer. If you have other use cases that would justify a different default
behavior - we can discuss what's more frequent and what seems more usefull.


> 
>> In all projects that I know, the basedir is used to resolve
>> files relative
>> to the location of the build file - and I think the default
>> should reflect
>> that.
>> 
> 
> So why do we allow basedir to be changed using -Dbasedir=xxx
> or using <ant dir="xxx" file="somelocalfile"/>

For advanced behavior. 

> Or am I mistaken such functionality is there? How would that affect
> the behaviour of import? Things need to be consistent.

Consistency is nice where it makes sense. Should all tasks ignore
missing files like property ? 


> Following your line of thought, are you advocating for each task or target
> to actually remember from which buildfile it came from? Even if they are
> called using <antcall> from some other target coming from somewhere else?

Yes.

Most existing build files rely on paths relative to the build file.

Build files designed specifically for import ( providing some templates )
look like advanced features - and I think it's reasonable to ask
them to explicitely specify a basedir. 
Also changing the basedir is IMO an advanced use - and shouldn't be 
the default.



Costin


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to