使用MAVEN手动创建web项目
问题:如下图,使用maven创建webapp项目时,默认使用maven-archetype-webapp这个archetype,由于这个archetype比较古老,有如下缺点:
1. 默认生成的项目会报错
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path index.jsp /demo/src/main/webapp line 1 JSP Problem2. 默认依赖jdk 1.5
3. Dynamic Web Module 版本为2.3
所以决定自己手动创建一个较新的webapp项目,这个新体现在以下几个方面:
1. 依赖jdk 1.7
2. Dynamic Web Module 版本为3.0
过程如下
1. 勾选create a simple project (创建一个简单的项目,跳过archetype选择)
2. 正常填写maven项目的信息,点击Finish
3. 产生的项目同样会报错,需要修改以下地方,首先时pom.xml文件,如下图所示
<build> <plugins> <!-- 配置为jdk1.7 --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <dependencies> <!-- servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <!-- jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <!-- jstl 1.2 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> </dependencies>
4. 其次需要手动创建WEB-INF目录和web.xml文件,并更新web.xml为如下内容:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"></web-app>
5. 接下来切换到Navigator视图下,找到.settings目录下的project facet的配置文件org.eclipse.wst.common.project.facet.core.xml,
将version更改为3.0然后更新项目 -
<installed facet="jst.web" version="3.0"/>
6.最后更新maven项目,update project(Alt+F5)