Ant TaskDef 在 ClassLoader 中失败

Ant TaskDef Fails in ClassLoader

我正在尝试在 ant 中为 Tomcat 定义一个 taskdef。

<taskdef name="antStartServer" classname="org.apache.catalina.ant.StartTask" />
<taskdef name="antStopServer" classname="org.apache.catalina.ant.StopTask" />

但是当我 运行 脚本时,出现错误:

taskdef class org.apache.catalina.ant.StartTask cannot be found using the classloader AntClassLoader[]

你能告诉我我做错了什么吗?我把所有的罐子都放在 Tomcat lib 文件夹中。我正在使用 Tomcat 9 和 Ant 1.10.5

您需要指定一个类路径,Ant 可以在其中找到您需要的类:

<!-- set the path to Tomcat root install directory -->
<property name="tomcat.home" value="..."/>

<path id="tomcat.path">
  <fileset dir="${tomcat.home}/lib" includes="*.jar"/>
</path>

<taskdef name="antStartServer" classname="org.apache.catalina.ant.StartTask" classpathref="tomcat.path"/>
<taskdef name="antStopServer" classname="org.apache.catalina.ant.StopTask" classpathref="tomcat.path"/>