我在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中执行此操作的最佳方法是什么,应该修改什么?
由于问题可能看起来很愚蠢,人们可能会投票而不是回答。但这肯定无济于事,这就是他们的目的。
答案 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路径式结构部分