Hm, I had the same problem, and it worked after I placed the taskdef in a different target than the compile task. That way I can compile the task and use it in the same ant run.
But you're right, with the patch applied you can place the taskdef anywhere and it will work.
----- Original Message -----
From: Paul Kilroy
To: ''
Sent: Tuesday, August 07, 2001 6:20 PM
Subject: RE: [PATCH] Lazy task class loading

I'd like to give my +1 for this even though I'm not a commiter, because:
-If you have the source for a new task in the same tree that uses it, you are unable to build w/o first commenting out the taskdef to build the task, then uncommenting it to build the rest of your tree. (Unless there's a way I couldn't find ;)
-----Original Message-----
From: Stefan Reich []
Sent: Tuesday, August 07, 2001 8:34 AM
Subject: Re: [PATCH] Lazy task class loading

Hi Ant developers-in-charge,
I sent this to the list two weeks ago and didn't get any reply.
Can you please give me an indication whether this patch is at all useful? Or if you think it isn't, then tell me why. I would really like to know that.
I have a couple of ideas for other patches to submit; but I don't want to go through the hassle to prepare them if there is no interest. So I'm using this patch as a kind of test balloon ;-)
----- Original Message -----
From: Stefan Reich
Sent: Saturday, July 21, 2001 7:25 PM
Subject: [PATCH] Lazy task class loading

currently Ant loads all taskdef classes (as defined in on startup. This mechanism has at least 3 drawbacks:
-It can take up to one second or longer (if you use ant for everyday development, you will notice the difference)
-It wastes memory
-It completely lacks descriptive error messages. For example, if you use <junit>, but junit.jar isn't in your classpath, you only get a default message telling you something about optional.jar. I've been puzzled as to why tasks couldn't be loaded more than once.
I would like to submit a patch that solves all three problems. I also took care to ensure that the public interface of is backward compatible.