jrad
jrad

Reputation: 3190

Buildfile for Java with external jars

I have tried and tried again to develop an Ant Buildfile for my project outline here:

NoClassDefFoundError when running Java from Windows command line with external jar files

This is the Buildfile I have tried to run:

<project>

    <target name="clean">
        <delete dir="build" />
    </target>

    <path id="jarpath">
        <fileset dir="C:\JAR">
            <include name="**" />
        </fileset>
    </path>

    <target name="compile">
        <mkdir dir="build/classes" />
        <javac srcdir="." destdir="build/classes" includeantruntime="false">
            <classpath id="jarpath" />
            <classpath>
                <pathelement path="jarpath" />
            </classpath>
        </javac>
    </target>

    <target name="jar">
        <mkdir dir="build/jar" />
        <jar destfile="build/jar/TestCase1.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="NSSR.TestCase1" />
            </manifest>
        </jar>
        <jar destfile="build/jar/UniversalVariables.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="NSSR.UniversalVariables" />
            </manifest>
        </jar>
    </target>

</project>

When I put "ant compile" into the command line in Windows, it gives me this behemoth of an error:

Buildfile: C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Case
s\src\build.xml

compile:
    [javac] Compiling 4 source files to C:\Documents and Settings\jradcliffe\wor
kspace\ITSM_Upgrade_Test_Cases\src\build\classes
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:3: package com.thoughtworks.selenium does not exist
    [javac] import com.thoughtworks.selenium.*;
    [javac] ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:4: package org.junit does not exist
    [javac] import org.junit.After;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:5: package org.junit does not exist
    [javac] import org.junit.Before;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:6: package org.junit does not exist
    [javac] import org.junit.Test;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:10: cannot find symbol
    [javac] symbol: class SeleneseTestCase
    [javac] public class TestCase1 extends SeleneseTestCase {
    [javac]                                ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:3: package com.thoughtworks.selenium does not exist
    [javac] import com.thoughtworks.selenium.*;
    [javac] ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:4: package org.junit does not exist
    [javac] import org.junit.After;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:5: package org.junit does not exist
    [javac] import org.junit.Before;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:6: package org.junit does not exist
    [javac] import org.junit.Test;
    [javac]                 ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:10: cannot find symbol
    [javac] symbol: class SeleneseTestCase
    [javac] public class TestCase1 extends SeleneseTestCase {
    [javac]                                ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:23: cannot find symbol
    [javac] symbol  : class Before
    [javac] location: class NSSR.TestCase1
    [javac]     @Before
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:30: cannot find symbol
    [javac] symbol  : class Test
    [javac] location: class NSSR.TestCase1
    [javac]     @Test
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:65: cannot find symbol
    [javac] symbol  : class After
    [javac] location: class NSSR.TestCase1
    [javac]     @After
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:23: cannot find symbol
    [javac] symbol  : class Before
    [javac] location: class TestCase1
    [javac]     @Before
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:30: cannot find symbol
    [javac] symbol  : class Test
    [javac] location: class TestCase1
    [javac]     @Test
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:65: cannot find symbol
    [javac] symbol  : class After
    [javac] location: class TestCase1
    [javac]     @After
    [javac]      ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:25: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium = new DefaultSelenium("localhost", 4444, "*fire
fox",
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:25: cannot find symbol
    [javac] symbol  : class DefaultSelenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium = new DefaultSelenium("localhost", 4444, "*fire
fox",
    [javac]                            ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:27: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.start();
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:32: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.open(UniversalVariables.loginPage);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:33: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("name=USERNAME", UniversalVariables.userna
me);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:34: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("name=PASSWORD", UniversalVariables.passwo
rd);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:35: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.click("link=Submit");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:36: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.waitForPageToLoad("60000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:37: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.open("/itg/dashboard/app/portal/PageView.jsp?IS
_WINDOID=N");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:38: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.click("link=Create");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:39: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.click("link=Request");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:40: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:41: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.select("name=REQUEST_TYPE_CREATE",
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:43: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.click("css=span.secBtn > a");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:44: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:55: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("id=REQ.DESCRIPTION", title);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:56: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("id=REQ.P.REQUESTORAC_TF", req);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:57: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.select("id=REQ.P.REQUESTOR_DEPT", dept);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:58: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("id=REQ.P.DETAIL_DESC", desc);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:59: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.type("REQ.P.REQ_COMPL_DATE", date);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:60: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.click("link=Submit");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:61: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:62: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.refresh();
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\NSSR\TestCase1.java:67: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class NSSR.TestCase1
    [javac]             selenium.stop();
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:25: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium = new DefaultSelenium("localhost", 4444, "*fire
fox",
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:25: cannot find symbol
    [javac] symbol  : class DefaultSelenium
    [javac] location: class TestCase1
    [javac]             selenium = new DefaultSelenium("localhost", 4444, "*fire
fox",
    [javac]                            ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:27: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.start();
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:32: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.open(UniversalVariables.loginPage);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:33: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("name=USERNAME", UniversalVariables.userna
me);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:34: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("name=PASSWORD", UniversalVariables.passwo
rd);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:35: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.click("link=Submit");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:36: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.waitForPageToLoad("60000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:37: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.open("/itg/dashboard/app/portal/PageView.jsp?IS
_WINDOID=N");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:38: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.click("link=Create");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:39: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.click("link=Request");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:40: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:41: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.select("name=REQUEST_TYPE_CREATE",
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:43: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.click("css=span.secBtn > a");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:44: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:55: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("id=REQ.DESCRIPTION", title);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:56: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("id=REQ.P.REQUESTORAC_TF", req);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:57: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.select("id=REQ.P.REQUESTOR_DEPT", dept);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:58: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("id=REQ.P.DETAIL_DESC", desc);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:59: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.type("REQ.P.REQ_COMPL_DATE", date);
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:60: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.click("link=Submit");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:61: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.waitForPageToLoad("30000");
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:62: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.refresh();
    [javac]             ^
    [javac] C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cas
es\src\TestCase1.java:67: cannot find symbol
    [javac] symbol  : variable selenium
    [javac] location: class TestCase1
    [javac]             selenium.stop();
    [javac]             ^
    [javac] 64 errors

BUILD FAILED
C:\Documents and Settings\jradcliffe\workspace\ITSM_Upgrade_Test_Cases\src\build
.xml:15: Compile failed; see the compiler error output for details.

Total time: 1 second

Basically put, it doesn't appear to recognize anything from my jar files, which I suppose makes sense given that I don't reference them in the compile target. The problem is that I don't know how to reference them (this is my first Buildfile apart from my Hello World).

Thank you

Upvotes: 1

Views: 659

Answers (3)

Christopher Peisert
Christopher Peisert

Reputation: 24104

Try changing your compile target such that within <javac> the <classpath> uses refid instead of id as follows:

<target name="compile">
    <mkdir dir="build/classes" />
    <javac srcdir="." destdir="build/classes" includeantruntime="false">
        <classpath refid="jarpath" />
    </javac>
</target>

Upvotes: 0

Mark O&#39;Connor
Mark O&#39;Connor

Reputation: 77951

The problem you're having is setting up and managing the classpath. This is by far the most common problem with ANT builds...

When I reviewed your code it looks like you should be running junit...

I put together a revised build file that demonstrates the following:

  1. Uses apache ivy to manage all 3rd party jar dependencies
  2. Running junit tests using the ant junit task
  3. Packaging an executable jar complete with classpath

Hope it helps.

Example

The project has been built from source provided in the following question:

NoClassDefFoundError when running Java from Windows command line with external jar files

|-- build.xml
`-- src
    `-- NSSR
        |-- TestCase1.java
        `-- UniversalVariables.java

You'll need to run the following target once to install the ivy plugin

ant bootstrap

Build is then run as follows

ant clean jar

The generated jar can then be executed as follows;

java -jar build/dist/demo.jar

build.xml

<project name="demo" default="jar" xmlns:ivy="antlib:org.apache.ivy.ant">

    <!--
    ==========
    Properties
    ==========
    -->
    <property name="src.dir"     location="src"/>
    <property name="build.dir"   location="build"/>
    <property name="classes.dir" location="${build.dir}/classes"/>
    <property name="dist.dir"    location="${build.dir}/dist"/>

    <property name="jar.file"       location="${dist.dir}/${ant.project.name}.jar"/>
    <property name="jar.main.class" value="NSSR.TestCase1"/>

    <property name="javac.deprecation" value="false"/>
    <property name="junit.haltonfailure" value="false"/>

    <!--
    =======
    Targets
    =======
    -->
    <target name="bootstrap" description="Install ivy">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get src="https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&amp;g=org.apache.ivy&amp;a=ivy&amp;v=LATEST&amp;e=jar"
             dest="${user.home}/.ant/lib/ivy.jar"/>
    </target>

    <target name="init" description="Resolve dependencies and set classpaths">
        <ivy:cachepath pathid="build.path" conf="default">
            <dependency org="org.seleniumhq.selenium" name="selenium" rev="2.0rc2"/>
            <dependency org="junit" name="junit" rev="4.10"/>
        </ivy:cachepath>
    </target>

    <target name="compile" depends="init" description="Compile the code">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="." destdir="${classes.dir}" includeantruntime="false" deprecation="${javac.deprecation}" classpathref="build.path"/>
    </target>

    <target name="test" depends="compile" description="Run unit tests">
        <mkdir dir="${build.dir}/tests"/>

        <junit printsummary="yes" haltonfailure="${junit.haltonfailure}">
            <classpath>
                <path refid="build.path"/>
                <pathelement path="${classes.dir}"/>
            </classpath>
            <formatter type="plain"/>
            <batchtest fork="yes" todir="${build.dir}/tests">
                <fileset dir="${src.dir}" includes="**/*Test*.java"/>
            </batchtest>
        </junit>
    </target>

    <target name="jar" depends="test" description="Build jar files">
        <ivy:retrieve pattern="${dist.dir}/lib/[artifact]-[revision](-[classifier]).[ext]"/>

        <manifestclasspath property="jar.classpath" jarfile="${jar.file}">
            <classpath>
                <fileset dir="${dist.dir}/lib" includes="*.jar"/>
            </classpath>
        </manifestclasspath>

        <jar destfile="${jar.file}" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${jar.main.class}" />
                <attribute name="Class-Path" value="${jar.classpath}" />
            </manifest>
        </jar>
    </target>

    <target name="clean" description="Remove build files">
        <delete dir="${build.dir}" />
    </target>

    <target name="clean-all" depends="clean" description="Additionally purge ivy cache">
        <ivy:cleancache/>
    </target>

</project>

Upvotes: 1

M Abbas
M Abbas

Reputation: 6479

Try this:

 <classpath>
      <pathelement path="${classpath}"/>
      <fileset dir="lib">
        <include name="**/*.jar"/>
      </fileset>
      <pathelement location="classes"/>
      <dirset dir="${build.dir}">
        <include name="apps/**/classes"/>
        <exclude name="apps/**/*Test*"/>
      </dirset>
      <filelist refid="third-party_jars"/>
    </classpath>

See Writing a simple build file

Upvotes: 0

Related Questions