27

I am attempting to install software onto my Debian Lenny server. Specifically, Capture-HPC. I have setup VMWare server, along with all the prerequisites. When I go to run ant in the directory, i get the following error:

[taskdef] Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found.

Anyone have any ideas what is causing this? Details about my ant installation follow:

Apache Ant version 1.7.0 compiled on April 29 2008
Buildfile: build.xml
Detected Java version: 1.6 in: /usr/lib/jvm/java-6-sun-1.6.0.20/jre
Detected OS: Linux

And the build.xml file . . .

<?xml version="1.0"?>
<project name="CaptureServer" xmlns:ac="antlib:net.sf.antcontrib" default="release" basedir=".">
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

<condition property="os" value="unix">
    <os family="unix"/>
</condition>
<condition property="os" value="windows">
    <os family="windows"/>
</condition>

 <property environment="env"/>
 <property name="src" value="."/>
 <property name="build" value="build"/>
 <property name="lib" value="lib"/>
 <property name="release" value="release"/>
 <property name="classpath.build" value=".\lib\junit-4.4.jar"/>
 <property name="classpath.run" value="lib/junit-4.4.jar"/>


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

 <target name="init">
      <mkdir dir="${build}"/>
      <mkdir dir="${release}"/>
 </target>

 <target name="compile" depends="init">
      <!-- Compile the java code -->         
      <javac srcdir="${src}" destdir="${build}" debug="true" debuglevel="lines,vars,source" classpath="${classpath.build}"/>

      <!-- Compile the revert code -->
      <if>
       <equals arg1="${os}" arg2="windows" />
       <then>
       <exec executable="compile_revert_win32.bat"/>
       </then>
      <else>
       <exec command="sh" executable="./compile_revert_linux.sh"/>
      </else>
     </if>

 </target>

 <target name="jar" depends="compile">
    <mkdir dir="${build}/jar"/>
    <jar destfile="${build}/jar/CaptureServer.jar" basedir="${build}">
        <manifest>
            <attribute name="Class-Path" value="${classpath.run}"/>
            <attribute name="Main-Class" value="capture.Server"/>
        </manifest>
    </jar>
</target>

<target name="release" depends="clean,compile,jar">
    <copy file="${build}/jar/CaptureServer.jar" todir="${release}"/>
    <copy file="./COPYING" todir="${release}"/>
    <copy file="./Readme.txt" todir="${release}"/>
    <copy file="./preprocessor_README.txt" todir="${release}"/>
    <copy file="./input_urls_example.txt" todir="${release}"/>
    <copy file="./config.xsd" todir="${release}"/>
    <copy file="./config.xml" todir="${release}"/>
    <copy todir="${release}/${lib}">
        <fileset dir="lib"/>
    </copy>

    <if>
       <equals arg1="${os}" arg2="windows" />
       <then>
        <copy file="${env.VIX_HOME}/libeay32.dll" todir="${release}"/>
        <copy file="${env.VIX_HOME}/ssleay32.dll" todir="${release}"/>
        <copy file="${env.VIX_HOME}/vix.dll" todir="${release}"/>
        <copy file="./revert.exe" todir="${release}"/>
       </then>
      <else>
        <exec executable="cp">
          <arg value="./revert"/>
          <arg value="${release}"/>
        </exec>
      </else>
     </if>  

    <zip destfile="./CaptureServer-Release.zip" basedir="release"/>
</target>

<target name="clean">
    <delete dir="${build}"/>
    <delete dir="${release}"/>
    <delete>
        <fileset dir="." includes="revert.exe"/>
        <fileset dir="." includes="revert"/>
        <fileset dir="." includes="CaptureServer-Release.zip"/>
    </delete>
</target>
</project>
Julio
  • 2,261
  • 4
  • 30
  • 56
  • After installing antcontrib you should use for referencing in your build scripts as net/sf/antcontrib/antcontrib.properties contains only tasks for ant versions before Ant 1.6.x – Rebse Feb 07 '12 at 21:22

4 Answers4

32

This error message indicates that you are attempting to load a non-core task, but the resource which further defines the task is not present (or not where expected).

See installation instructions here.

You can either

  1. find/download the ant-contrib jar and put it into your ant installation (as per option 1 in the link above); or
  2. Modify your ant file (as per option 2 in the link above) to include the ant-contrib jar in a nested classpath.
Kalle Richter
  • 8,008
  • 26
  • 77
  • 177
Synesso
  • 37,610
  • 35
  • 136
  • 207
  • Updated. Do you have the ant-contrib jar? – Synesso Oct 25 '10 at 03:51
  • Where would I look for this? I've downloaded ant-contrib, but can't seem to find it in the downloaded files. I'm not well versed with ant. – Julio Oct 25 '10 at 04:05
  • 3
    You have downloaded ant-contrib-1.0b3-bin.zip? Inside you will find ant-contrib-1.0b3.jar. Ignore the rest of the files. Put the jar file in the lib directory inside your ant installation and try again. – Synesso Oct 25 '10 at 04:09
  • You were right. Needed to move ant-contrib-{version}.jar into my lib/ – Julio Oct 26 '10 at 04:14
16

Solution for Ubuntu:

sudo apt-get install ant-contrib
sudo ln -s /usr/share/java/ant-contrib.jar /usr/share/ant/lib/
Alan Q.
  • 394
  • 2
  • 10
7

Solution for Linux/Debian:

apt-get install ant-contrib
export CLASSPATH=/usr/share/java/ant-contrib.jar
georgik
  • 81
  • 1
  • 2
3

Solution for CentOS/RHEL:

sudo yum install ant-contrib