eclipse中新建maven web工程,會因為缺少servlet,jsp,jstl的依賴而報錯,但如果直接依賴到pom.xml中后,會與tomcat中的相關jar包沖突,此時:
<dependency>
<groupId> jstl</groupId >
<artifactId> jstl</artifactId >
<version>${version}</ version>
</dependency>
<!-- Servlet -api -->
<dependency>
<groupId> javax.servlet</groupId >
<artifactId> servlet-api</artifactId>
<version>${version}</ version>
<scope> provided</ scope>
</dependency>
<dependency>
<groupId> javax.servlet</groupId >
<artifactId> jsp-api</artifactId>
<scope> provided</ scope>
<version>${version}</ version>
</dependency>
但還有些時候,我們會引進一些高級依賴,這些依賴底層會自動依賴servlet,jsp的依賴,這樣的war包如果直接到tomcat中也會引發沖突,所以此時應該將它們排除,如果這會引發編譯的問題,那么依舊可以在pom.xml中引入上面的依賴,但注意版本與高級以來中這些jar包版本一致即可:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>${version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
</exclusion>
</exclusions>
</dependency>
如果你手頭沒有配置好的版本,那么,可以用我這個:
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
