How to solve “Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.” while running “ant test”

antjunit

I have a target named test and I want to do some tests.

I put here the important parts in build.xml. It includes:

<property name='lib.dir' value='lib' />

<path id='classpath'>
     <fileset dir="${lib.dir}" includes="**/*.jar" />
</path>

And I have put the junit.jar and ant-junit.jar(is it a must?) in the lib directory.

However, if I run

ant test.

The output error is:

test:

BUILD FAILED
/home/xiaohan/EclipseWorkSpace/AntTest/build.xml:82: Problem: failed to create task or type junit
Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.
        This looks like one of Ant's optional components.
Action: Check that the appropriate optional JAR exists in
        -/usr/share/ant/lib
        -/home/xiaohan/.ant/lib
        -a directory added on the command line with the -lib argument

Do not panic, this is a common problem.
The commonest cause is a missing JAR.

This is not a bug; it is a configuration problem

Additionally, if I put the two jar files in /usr/share/ant/lib with the $ANT_HOME set, it still does not work.

Really thanks for any hints

Best Answer

In my case (using Mint, based on Debian)

sudo apt-get install ant-optional

was the only thing that worked.