【问题标题】:Ant TaskDef Fails in ClassLoaderAnt TaskDef 在 ClassLoader 中失败
【发布时间】:2023-07-21 14:48:01
【问题描述】:

我正在尝试在 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

【问题讨论】:

    标签: java tomcat ant tomcat9


    【解决方案1】:

    您需要指定一个类路径,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"/>
    

    【讨论】: