项目里要用到commons-logging。它有几个依赖,其中有一个是servlet-api-2.3.jar。现在我需要用到容器内的servlet-api的异步功能,编译的时候却总是自动引用默认的2.3版本。请问哪位有经验处理这样的冲突,可以屏蔽掉servlet-api-2.3.jar这个依赖包。
如果你的工程是用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目录下。
把包删了? 或者换个别的版本的包!
还有就是看你JAVA 里面导包的时候具体 import的是哪个包!
Maven可以
不要把servlet-api-2.3.jar打包到最终war包或ear包里啊。
Eclipse里,可以配置的。
用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]
把Selvet-2.3的包删掉,直接导入容器的Selvet包,让commons-logging用容器的Selvet包
直接拷贝容器那个包替换掉servlet-api-2.3.jar
建立J2ee6标准的项目