天天看點

解決maven 已經設定依賴servlet-api和jsp-api為provided,但是依舊報錯Unable to compile class for JSP

相信很多童鞋在使用maven做項目時都會經曆過依賴沖突的問題,最常見的莫過于servlet-api和jsp-api這個兩個jar包版本庫和容器沖突

報錯提示如下:maven Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The ....

解決方案一(傻逼方法,根本不科學):删除這兩個jar包,很多網上方法這樣說,execuse me?  逗我呢?本來就需要這個兩個包,你還删除?先不管容器中是否提供,再說我都進行provided聲明了,肯定不用删除這兩個jar包

解決方案二:(下面寫法僅供參考)

pom.xml對應的依賴配置如下

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jsp-api</artifactId>
	<version>2.0</version>
	<scope>provided</scope>
</dependency>
           

正常情況下這樣都能解決了,但是估計還是會遇到這樣配置了之後依舊沒有解決的,還是依舊報錯,這是因為tomcat6是eclipse預設的,而此時你的jdk恰巧确實jdk1.8,當然會報錯,因為這個jdk1.8不支援tomcat6

這是配置一下tomcat插件為7版本

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
<!-- 下面屬于自定義 -->
	<configuration>
	<port>8080</port>
	<path>/crm</path>
	<uriEncoding>UTF-8</uriEncoding>
	</configuration>
</plugin>
           

這是你去運作時輸入的指令是這樣的tomcat7:run  注意是tomcat7   而不是原來的tomcat而已,如下圖

解決maven 已經設定依賴servlet-api和jsp-api為provided,但是依舊報錯Unable to compile class for JSP

輸入指令:

解決maven 已經設定依賴servlet-api和jsp-api為provided,但是依舊報錯Unable to compile class for JSP

這個困惑了我好幾天,網上百度一大堆沒用的東西,幸好找到了一片文章提示了我,參考文章位址https://blog.csdn.net/u011781521/article/details/53713162