使用maven生成web工程后,编译需要下servlet-api.jar和jsp-api.jar文件。
pom文件中的写法为:
- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1-b02</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
- <dependency>
-
<groupId>javax.servlet.jsp</groupId> -
<artifactId>jsp-api</artifactId> -
<version>2.1</version> -
<scope>provided</scope> - </dependency>
这种写法在使用mvn targe命令时有效的,但是在eclipse下run on server下,会把依赖的mavne
dependencies这个library下面的全部jar都加载到tomcat的部署目录下面去。
个人认为这是eclipse的maven插件的不兼容导致的。
解决这种冲突有两种
1:把加载后的删掉
2:把server runtime这个library加到build path下面去。
个人建议使用第二种方法。
还一个问题就是pom同时写了servlet-api 和jsp-api 在run on server的时候,控制台会报servlet-api .jar无法load的警告。
解决方法干掉jsp-api.jar
这个问题很奇怪我在tomcat6的情况下是没有这个问题。tomcat7出现这个问题。我使用的servlet3.0和jsp2.2 不知道是不是版本冲突的问题。