【问题标题】:How to add tomcat's lib in ant build's classpath?如何在 ant build classpath 中添加 tomcat 库?
【发布时间】:2013-06-07 12:43:05
【问题描述】:
  • 我的 Eclipse 动态 Web 中需要 servlet-api.jar 和 jsp-api.jar 项目。
    • 所以我去了项目 -> 属性 -> 目标运行时 -> 检查了 Apache Tomcat 6.0。
    • 现在我尝试使用 Ant 构建一个 war 文件,因为我必须在 unix 机器上部署这个 war 文件。
    • 问题 - Ant 构建失败(包 javax.servlet 不存在等),因为 jar 文件不在 /WEB-INF/lib/ 下。如何在类路径中包含这些 jar 文件?我无法对其进行硬编码,因为 windows(D:\Program Files\Apache...) 和 unix(/usr/local/apache..) 中的路径不同。
    • 当前类路径-
<path id="compile.classpath">
    <fileset dir="${web.home}/WEB-INF/lib">
        <include name="*.jar"/>
    </fileset>
</path>

附言我的 Apache-Tomcat 版本在 windows(6.0.32) 和 unix(6.0.36) 上不同

【问题讨论】:

    标签: eclipse jsp servlets ant


    【解决方案1】:

    我会检查是否在可能运行构建的任何机器上设置了像 CATALINA_HOME 这样的变量,然后你可以使用类似的东西:

    <path id="compile.classpath">
        <fileset dir="${web.home}/WEB-INF/lib">
            <include name="*.jar"/>
        </fileset>
        <fileset dir="${env.CATALINA_HOME}/lib">
            <include name="*.jar"/>
        </fileset>
    </path>
    

    【讨论】:

    • 如果我的 apache-tomcat 版本在 windows 和 unix 上不同,这会起作用吗?我应该从 unix 框中手动复制 .jar 文件并将它们放在我的 Windows 的 env.CATALINA_HOME 目录中吗?
    • 不,您不应该手动复制任何内容。如果在两台机器上都设置了环境变量(一台机器设置为C:\Foo\Bar\apache-tomcat-6.0.32,另一台设置为/usr/local/apache-tomcat-6.0.27),那么无论哪种情况,它都应该将Tomcat的/lib .jars放在你的类路径中。
    【解决方案2】:

    试试这个:

    1. 双击你的build.xml -> Run as -> Ant build...
    2. 选择“类路径”并添加所需的 jars

    我觉得应该够了

    【讨论】:

    • 我的tomcat版本在windows和unix上是不同的。不会按照您提到的方式添加 jar 会导致错误,例如 - java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 2020-05-05
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多