使用Tomcatjar时ANT war文件编译失败



我正在尝试使用ANT来构建一个war文件。脚本的一部分编译了一个名为HelloClient.java的源代码这是一个Servlet,我使用Tomcat中的javax.Servlet.*jar

1/当我在命令行使用javac HelloClient.java时,我得到错误cannot find symbol public class HelloClient extends HttpServlet

2/当我从命令行使用javac -cp C:Usersjonapache-tomcat-9.0.39libservlet-api.jar HelloClient.java时,它会编译

命令行上的ant war给出与上述1完全相同的错误,即error: cannot find symbol public class HelloClient extends HttpServlet

通过IntelliJ,我得到了类似的结果。当我使用Build Module选项时,IntelliJ编译类,并按预期将所有文档和web.xml转储到Production(我已将Tomcat-Lib目录添加到Library(。

当我尝试运行我的ANT脚本时,我得到了与上面相同的错误,我认为这是javac抱怨没有它需要的jar。

我的CLASSPATH 中有C:\Users\jon\apache-tomcat-9.0.39\lib

我是否应该在这里做些什么,以便ANT驱动的编译可以看到所需的jar?

通过一些ANT类路径工作解决。

<target name="setup" depends="clean">
<mkdir dir="${lib-dir}"/>
<copy file="C:Usersjonapache-tomcat-9.0.39libservlet-api.jar" todir="${lib- 
dir}"/>
</target>   
<path id="build.classpath">
<!-- include all jars in the jar directory and all sub-directories -->
<fileset dir="${lib-dir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="compile" depends="setup">
<mkdir dir="${build-dir}"/>
<javac includeantruntime="false" srcdir="${src-dir}" destdir="${build-dir}"
classpathref="build.classpath">
</javac>
</target>

最新更新