ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Lalevée <>
Subject Re: Junit Task warning about multiple versions of Ant
Date Thu, 12 Apr 2018 17:13:23 GMT

> Le 12 avr. 2018 à 16:57, Stefan Bodewig <> a écrit :
> On 2018-04-12, Nicolas Lalevée wrote:
>> The Junit task is printing a warning if it finds multiple versions of
>> Ant in the classpath of the unit tests. It seems it doesn’t do
>> correctly the job if the ant runtime is explicitly removed from the
>> classpath.
> Quite possible.
>> Here the function which checks the classpath:
> this is in the forked case.
>> And here is the one which build the classloader during the actual forked run:
> AFAICT createClassloader is not invoked for forked VMs, only in the
> non-forked case.
>> Shouldn’t the classloader be built the same way in both function?
> In the forked case, the classloader is not built by the task, the
> CommandLineJava instance collects the classpath and sets it as
> -classpath command line argument.

Ha yes, you’re right.

As far as I can see, the classpath used by checkForkedPath is the proper one. The function
which manipulates the classpath to add the Ant runtime [1] is called before. So I should start
looking into the AntClassLoader which is improperly finding the Ant classes. Maybe we should
« isolate » it.

Or maybe that check for duplicate ant jar is only useful when includeantruntime is _not_ set
to « no ». Since includeantruntime is true by default, it is nice that Ant is printing a
warning when it also find Ant classes in the provided classpath, it is a common pitfall. But
when includeantruntime is explicitely set to false, then I would say that the user know what
he's doing, thus no need for special check.


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