djy3273
djy3273
2011-03-07 13:12

如何解决依赖包servlet-api和容器自带servlet的jar包的冲突

项目里要用到commons-logging。它有几个依赖,其中有一个是servlet-api-2.3.jar。现在我需要用到容器内的servlet-api的异步功能,编译的时候却总是自动引用默认的2.3版本。请问哪位有经验处理这样的冲突,可以屏蔽掉servlet-api-2.3.jar这个依赖包。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

8条回答

  • changchanghust changchanghust 10年前

    如果你的工程是用maven管理的话,可以在commons-logging的依赖里把servlet-api-2.3去除掉,再加入你所需要的版本的servlet-api依赖。大概的例子如下:
    [code="xml"]

    commons-logging
    commons-logging
    1.1.1


    javax.servlet
    servlet-api


        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>servlet-api-2.5</artifactId>
            <version>6.1.14</version>
            <scope>provided</scope>
        </dependency>
    

    [/code]
    指定scope为provided可以避免在发布的时候把servlet-api包拷到lib目录下。

    点赞 评论 复制链接分享
  • chresolute chresolute 10年前

    建立J2ee6标准的项目

    点赞 评论 复制链接分享
  • wendangzhanghu wendangzhanghu 10年前

    直接拷贝容器那个包替换掉servlet-api-2.3.jar

    点赞 评论 复制链接分享
  • redstarofsleep redstarofsleep 10年前

    把Selvet-2.3的包删掉,直接导入容器的Selvet包,让commons-logging用容器的Selvet包

    点赞 评论 复制链接分享
  • iteye_6393 iteye_6393 10年前

    用mvn的pom文件里,将引入的servlet-api-2.3.jar的文件,通过在dependency哪里增加exclusions方式。例如:
    [code="xml"]
    com.xx.china.shared
    xx.xx.xx
    1.1-SNAPSHOT
    jar


    xx.xx.x
    xx.xx.xx



    [/code]

    点赞 评论 复制链接分享
  • iteye_7589 iteye_7589 10年前

    不要把servlet-api-2.3.jar打包到最终war包或ear包里啊。

    Eclipse里,可以配置的。

    点赞 评论 复制链接分享
  • rocketball rocketball 10年前

    Maven可以

    点赞 评论 复制链接分享
  • iteye_20676 iteye_20676 10年前

    把包删了? 或者换个别的版本的包!
    还有就是看你JAVA 里面导包的时候具体 import的是哪个包!

    点赞 评论 复制链接分享

为你推荐