【问题标题】:Missing class reference in build.xmlbuild.xml 中缺少类引用
【发布时间】:2009-07-06 12:12:41
【问题描述】:

当我给ant myproject-war 时,我得到了以下错误。有人可以帮忙吗?

BUILD FAILED
C:\Documents and Settings\personal\Desktop\project files\myproject\bu
ild.xml:167: taskdef A class needed by class org.apache.jasper.JspC cannot be fo
und: javax/servlet/ServletContext

【问题讨论】:

    标签: java ant build.xml


    【解决方案1】:

    必须将包含 javax.servlet.ServletContext 的 JAR 添加到您的 CLASSPATH。

    【讨论】:

      【解决方案2】:

      检查您的清单和类路径。他们可能没有包括必要的罐子。

      例如:classpathref="some_classpath" 可以进入javac 标签,其中some_classpath 等于

      <path id="some_classpath">
          <pathelement location="${someJar.jar}"/>
          <pathelement location="${another.jar}"/>
      </path>
      

      另外,你的 jar 清单应该有如下内容:

      <manifest>
          <attribute name="Class-Path" value="../lib/another.jar ../lib/someJar.jar"/>
      </manifest>
      

      【讨论】:

      • 嗨,这是我找到 jspc 的标签。你能帮忙
      【解决方案3】:

      在ant中可以定义新的任务(taskdef)。其中一些任务需要您将 java-libraries 放入 ant 的类路径中。这可以通过将相应的 jar 复制到 ant 安装的 lib/ext 目录中来实现。

      【讨论】:

        【解决方案4】:

        您的类路径中需要一个 jar,用于运行包含 javax.servlet.ServletContext 的 JspC 的目标。因此,例如,如果您使用的是 Tomcat,则 servlet-api.jar 可能就是您要查找的 jar。如果你在做 GWT,gwt-user.jar 可能是 jar。取决于你的上下文。

        【讨论】:

        • 我的项目的 lib 文件夹中有 servlet.api.jar
        • 另外,您需要确保该 jar 已添加到您的 build.xml 文件中的类路径定义中,用于调用 JspC 的目标。
        【解决方案5】:

        您正在使用具有核心 API 不支持的依赖项的 Ant 任务。

        来自documentation

        Ant 支持一些可选的 任务。可选任务是一项任务 这通常需要一个外部 库来运行。可选的 任务与 核心 Ant 任务。

        使用manual 定位可选任务并将所需的dependencies 添加到类路径中。

        【讨论】:

          【解决方案6】:

          Ant 在类路径中不占用空格。

          【讨论】:

            猜你喜欢
            • 2023-03-25
            • 1970-01-01
            • 2022-12-15
            • 2019-04-28
            • 2014-03-02
            • 2018-08-14
            • 2011-09-14
            • 1970-01-01
            相关资源
            最近更新 更多