【问题标题】:How to specify a "Tomcat 6 Server Runtime" library in Maven 2?如何在 Maven 2 中指定“Tomcat 6 服务器运行时”库?
【发布时间】:2013-01-28 07:30:21
【问题描述】:

我正在使用 Eclipse 3.7、Tomcat 6 和 Maven 2 开发一个项目。该项目依赖于 jsp-api.jar 和 serlet-api.jar。但是这两个 jar 必须排除在部署到 Tomcat 6 之外,因为它们与 Tomcat 6 的 jar 冲突。所以我在开发阶段需要它们,在部署阶段不需要它们。我想以一种自动的方式实现这个要求。 我有两种解决方案,但都不能满足我的要求:

  1. 在pom中添加依赖,并在部署过程中通过添加排除这2个jar

     <plugin>
       <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <packagingExcludes>WEB-INF/lib/servlet-api-2.4.jar,WEB-INF/lib/jsp-api-2.1.jar</packagingExcludes>
        </configuration>
     </plugin>
    

    maven-war-plugin 防止在 mvn package 目标期间将指定文件打包到 war 文件中。但是当我在Eclipse中使用tomcat进行开发时,每次重新发布项目时,我都必须手动从tomcat工作空间中删除这2个jar。

  2. 从 pom 依赖项中删除它们,在 Eclipse 中添加一个 tomcat 6 服务器运行时库。这种情况下开发是可以的,但是不能用maven打包,因为pom文件中少了两个依赖。

如何在 Maven 中添加“Tomcat 6 服务器运行时库”,这样这 2 个 jar 就不会复制到项目的 lib 目录中,编译器仍然可以找到依赖项?

【问题讨论】:

    标签: eclipse maven-2 tomcat6


    【解决方案1】:

    只需将“提供”范围添加到依赖项即可。

    例子:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2011-03-24
      • 2011-10-22
      • 2021-02-17
      相关资源
      最近更新 更多