将类路径添加到build.xml的最佳方法

时间:2014-07-15 13:39:13

标签: java ant classpath build.xml

我在build.xml中有这个target来编译一个类:

<target name="-do-compile" depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources">
    <webproject2:javac destdir="${build.classes.dir.real}"/>
        <copy todir="${build.classes.dir.real}">
            <fileset dir="${src.dir}" excludes="${build.classes.excludes}"/>
        </copy>
</target>

还有:

<target name="-init-macrodef-javac">
        <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
            <attribute name="srcdir" default="${src.dir}"/>
            <attribute name="destdir" default="${build.classes.dir.real}"/>
            <attribute name="classpath" default="${javac.classpath}:${j2ee.platform.classpath}"/>
            <attribute name="debug" default="${javac.debug}"/>
            <element name="customize" optional="true"/>
            <sequential>
                <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
                    <classpath>
                        <path path="@{classpath}"/>
                    </classpath>
                    <compilerarg line="${javac.compilerargs}"/>
                    <customize/>
                </javac>
            </sequential>
        </macrodef>
    </target>

在编译期间,我收到错误'javax.servlet不存在'。所以我必须将classpath添加到/opt/java/common/中的servlet-api.jar。在我的build.xml中执行此操作的最佳方法是什么,应该修改什么?

由于问题可能看起来很愚蠢,人们可能会投票而不是回答。但这肯定无济于事,这就是他们的目的。

1 个答案:

答案 0 :(得分:2)

将以下行添加到您的classpath元素

<pathelement location="/opt/java/common/servlet-api.jar"/>

即你的build xml文件

<javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}"   
                        source="${javac.source}" target="${javac.target}" includeantruntime="false">
      <classpath>
          <path path="@{classpath}"/>
          <pathelement location="/opt/java/common/servlet-api.jar"/>
      </classpath>
      <compilerarg line="${javac.compilerargs}"/>
      <customize/>
</javac>

请参阅http://ant.apache.org/manual/using.html路径式结构部分