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.
Here the function which checks the classpath: https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java#L1362 <https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java#L1362> And here is the one which build the classloader during the actual forked run: https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java#L1952 <https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java#L1952> Shouldn’t the classloader be built the same way in both function? Nicolas, trying to release Ivy, finding bugs in Ant :p