【问题标题】:Tomcat libraries to include in Eclipse with MavenTomcat 库与 Maven 一起包含在 Eclipse 中
【发布时间】:2012-11-17 05:39:33
【问题描述】:

我正在使用 Maven 使用 Eclipse 构建一个 Web 应用程序。服务器将是 Apache Tomcat。 Eclipse 已经有 tomcat 6 库,您可以将其包含在构建路径和 Web 应用程序模块方面以供选择。这就是我在没有 Maven 的情况下工作的方式。

但是,Maven 能够包含所需的依赖项以在 tomcat 中使用它们。我的问题是,什么是正确的,不通过 Maven 包含它们并像以前一样继续这样做,或者不配置 eclipse 构建路径并让 maven 解决它?

【问题讨论】:

    标签: java eclipse maven tomcat6 eclipse-wtp


    【解决方案1】:

    容器特定 API(如服务器 API)的最佳方法是将其包含在 maven POM 中,但是将依赖项设置为提供的范围,以便它可以在 Eclipse 的类路径中使用,但是 Maven 不会将其打包到 WAR 文件中生成它。例如

    <dependency>
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <version>...</version>
        <scope>provided</scope>
    </dependency>
    

    【讨论】:

    • 这适用于 servlet-api,甚至在构建路径中不包括服务器库。部署没问题,谢谢!
    【解决方案2】:

    据我所知Maven没有解决它,如果你没有具体说你的项目需要这些依赖。最好的方法是配置 pom.xml 并设置依赖项并使用 Maven 构建项目并在 eclipse 中编辑它。因此,一旦完成,您就可以轻松地“打包”(构建战争)并将其部署到任何服务器位置。

    【讨论】:

    • 当然,我说的是在 pom.xml 中包含 servlet-api 依赖,不知道有没有 Maven Tomcat 插件可以解决这个问题。我的问题是是否还需要使用 Eclipse 添加服务器库。顺便说一句,我正在使用 Eclipse WTP 来部署它。它在我通过 WTP 部署时有效,但在我导出 WAR 文件时无效。
    • 我记得当您使用 servlet.jars 在 tomcat 中部署项目时会出现问题。由于Tomcat(不确定6,但7)已经有了它。所以如果它给你一个“No Class”错误,那意味着你已经添加了两次(或没有)同一个 jar。需要手动检查并设置pom。有时 maven 从不同的项目中添加相同的 jar。所以maven的依赖树会帮你找到那些。
    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 2017-02-16
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    相关资源
    最近更新 更多