带有外部jar的Java构建文件

时间:2012-07-09 15:44:21

标签: java windows ant command-line jar

我已经尝试过再次尝试为我的项目大纲开发一个Ant Buildfile:

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

这是我试图运行的Buildfile:

<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>

<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>

当我在Windows中将“ant compile”放入命令行时,它给了我一个错误的庞然大物:

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

基本上,它似乎没有从我的jar文件中识别任何东西,我认为这是有意义的,因为我没有在编译目标中引用它们。问题是我不知道如何引用它们(这是我的第一个Buildfile除了我的Hello World之外)。

谢谢

3 个答案:

答案 0 :(得分:1)

您遇到的问题是设置和管理类路径。到目前为止这是ANT构建中最常见的问题......

当我查看您的代码时,看起来您应该运行junit ...

我整理了一个修改后的构建文件,演示了以下内容:

  1. 使用apache ivy来管理所有第三方jar依赖项
  2. 使用ant junit task
  3. 运行junit测试
  4. 使用classpath打包可执行jar
  5. 希望它有所帮助。

    实施例

    该项目是根据以下问题提供的来源构建的:

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

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

    您需要运行以下目标一次才能安装ivy plugin

    ant bootstrap
    

    然后按如下方式运行构建

    ant clean jar
    

    然后可以按如下方式执行生成的jar;

    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>
    

答案 1 :(得分:0)

试试这个:

 <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>

请参阅Writing a simple build file

答案 2 :(得分:0)

尝试更改compile目标,以便<javac> <classpath>使用refid而不是id,如下所示:

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