【问题标题】:Adding Tomcat Library to Maven将 Tomcat 库添加到 Maven
【发布时间】:2011-04-27 16:42:00
【问题描述】:

我第一次尝试 Maven 并遇到了问题。我们有一个部署在 Tomcat 6 上的应用程序。我们在 tomcat 的 lib 文件夹中添加了几个 jar 文件。然后在我们的构建路径中添加这个 tomcat 库。

如何将 tomcat 库添加到 maven?这是一个不好的方法吗?有其他选择吗?

提前致谢

【问题讨论】:

  • 你具体依赖什么tomcat库? :O 它不是 servlet-api(即标准 j2ee)之一吗?
  • 它们是我们开发并在新项目中使用的 jar 文件。

标签: java tomcat maven


【解决方案1】:

tomcat 的 lib 目录中的任何内容都应该是范围为 provided 的 maven 依赖项:

提供
这很像编译,但表明您期望 JDK 或容器提供 运行时的依赖。例如, 在构建 Web 应用程序时 Java 企业版,你会 设置对 Servlet API 的依赖 和相关的 Java EE API 范围 提供,因为 web 容器 提供这些课程。这个范围是 仅在编译和 测试类路径,并且不可传递。

来源:Maven Dependency Scope

示例:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

如果库是您自己的,则必须将它们安装或部署到本地或远程存储库。

【讨论】:

  • 我们的 tomcat lib 文件夹中包含以下内容:jndi.properties 文件、mysql-connector.X.jar、postGis.x.jar、postGreSQL.x.jar、ourJarFile.jar 和另一个 customJar.jar。我猜我可以制作 mysql、postgre 和 postgis 依赖项,但我不清楚如何处理我们的自定义 jar 和 jndi 属性文件。
  • @blong 可能使用范围系统:stackoverflow.com/questions/4959007/…
【解决方案2】:

除了 Tomcat 安装之外,您应该将依赖项添加到 maven 项目。然后,将它们的范围设置为“已提供”,这样它们就不会与工件捆绑在一起。

【讨论】:

    【解决方案3】:

    您应该在 POM 的 &lt;dependencies&gt; 部分中列出项目的每个依赖项。

    这样 Maven 知道要针对它们进行编译,并将这些依赖项包含在它为您打包的 .war 文件的 WEB-INF/lib 文件夹中。然后,支持 Maven 的 IDE 也可以将这些库包含在它们用来显示/构建/运行您的代码的类路径中。

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 2013-11-14
      • 2019-02-12
      • 2013-12-02
      • 2012-08-13
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      相关资源
      最近更新 更多