At 07:03 20/3/01 -0500, Eric Siegerman wrote:
>I'm a rank ant newbie. The following is a combination of 2.0
>suggestions, newbie questions, and confusion. I wouldn't dream
>of submitting suggestions at my current level of
>(mis)understanding, except that the submission deadline's
>tomorrow!
deadlines are for paid work - we scratch what itches ;) Though we are goin
to move onto the next phase soon - however we will always accept ideas etc ;)
>1. Can I do set arithmetic on FileSet's? I need to include most
No need to in most cases. From one of my build files...
<javac srcdir="${java.dir}"
destdir="${build.classes}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}">
<classpath refid="project.class.path" />
<src path="${build.src}"/>
<exclude name="${constants.file}" />
</javac>
will include everything in java.dir except ${constants.file} and everything
in build.src.
Not all tasks support this but most that I have needed do. Multiple
filesets combined with exclude/include (or patternsets) will work the magic
you need.
However I will add set arithmatic to requested features.
>2. Documentation complaint: Where can mappers be used, and
> where not? I see documentation for how to construct a
> <mapper> element, and of the existing mapper types, but the
> *only* thing I can find about where to put one is in examples
> of a couple of tasks like <apply> and <copy>. There doesn't
> seem to be anything rigourous that says: "you can use a
> mapper *here*, and if you do, it reads *this* file list and
> produces *that* list".
apply/copy are currently the only tasks that use it ;) But patches for docs
are accepted ;)
>3. Can a mapper be used in the construction of a FileSet? I'd
> like to be able to say something like:
> <fileset id="sources" .../>
> <fileset id="classes" refid="sources">
> <mapper type="glob" from="*.java" to="*.class"/>
> </fileset>
there has been a proposal for this. It may or may not get through - not
sure at this moment.
>4. Let me register a custom mapper, as <taskdef> does for tasks,
> so that I don't have to name the mapper's java class at each
> reference.
Already requested with line
* provide support for non-hardwired (ie loadable) low-level
components (mappers/itemset-filters/converters). Allow them to be
loaded in either global or a new classloader.
>5. There's an existing suggestion:
> > * Target inheritance. ie The ability to include targets from other
> > project files overidining them as necessary (so cascading project
> > files).
>
> This should be possible for things other than targets, like
> FileSet's and properties.
inheritance of filesets/properties between projects is already there. (Thou
not explicitly stated which I may do).
However inheritance between datatypes is an interesting idea that I will add.
>6. The concepts "fileset" and "path" can be unified, I think.
Already covered under the notion of standardising attributes/developing
more fully fledged notion of includes/excludes/file-patternsets. Will make
it explicit though..
> 7. Another existing suggestion:
> > * It should be possible to modify details of the actual build (e.g.
classpath,
> > used compiler) without the need to change the build specification.
> >
> > Do build.compiler and build.sysclasspath cover everything or do we
> > need to add more stuff like this?
>
> It should be possible to specify -g, -O, -nowarn, etc., at
> runtime, ie. ant should have the equivalent of CFLAGS-style
> hooks.
yep - definetly ;)
>I hope at least some of these have value ... thanks for
>listening.
most of it was good ! ;)
Cheers,
Pete
*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof." |
| - John Kenneth Galbraith |
*-----------------------------------------------------*