JavaWeb技术(一) -- eclipse创建maven项目实现动态web工程
首先假定你已经在eclipse中集成配置好了maven
1.新建一个maven项目,如下图

点击next

选择webapp之后 next

输入Group Id 和 Artifact Id, Package可以不写,它会默认帮你新建一个包,不写没关系。点击finish之后maven工程即创建完毕,创建好的maven工程如下:

可以看到index.jsp出现红色报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 。这是因为javaweb工程类中没有添加Web容
器Runtime相关类导致,也就是缺少servlet-api的jar包,解决方法很简单,只需在pom.xml中添加servlet-api的依赖即可,如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
另外我们看到工程中只出现了src/main/resources这一个Source Folder,maven工程应该还有另外三个Source Folder,分别是src/main/java,src/test/java和src/test/resources。
其实src/main/java和src/test/java也存在,只是未显示出来。
鼠标右击项目,选择 Build Path -> Configure Build Path -> Java Build Path -> Libraries,单击JRE System Library,单机Edit,可以看到工程原来默认选择了Execution environment,即J2SE-1.5

我们只需要点选Workspace default JRE(jdk8),Finish后,Apply应用并close关闭即可,现在src/main/java,src/main/resources,src/test/java三个Source Folder都已经显示,我们还需要创建一个src/test/resources,右击工程,new -> Source Folder,注意不是普通的Folder,而是Source Folder,Floder name 填上src/test/resources即可。
我们也可以更改class路径:右键项目,Properties ->Java Build Path -> Source
下面应该有4个文件夹:src/main/java,src/main/resources,src/test/java ,src/test/resources。
双击每个文件夹的Output folder,选择路径:
src/main/java,src/main/resources,选择target/classes;
src/test/java ,src/test/resources, 选择target/test-classes;
选上Allow output folders for source folders.(如果没有选上的话)

2.将创建好的maven工程转换为动态web工程
右键项目,Properties -> Project Facets,Dynamic Web Module 原来是2.3,选择3.0,可以看到出现报错:Cannot change version of project facet Dynamic web module to 3.0.

这是因为新建maven项目时,选择的是 maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,我们可以从web.xml中看到

解决方法为:
(1)把Servlet改成3.0,,将web.xml修改为以下内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>
</web-app>
(2)修改项目的配置,调出Navigator,方法为点击 Window -> Show View -> Navigator ,打开该maven项目的 .settings 下面的 org.eclipse.jdt.core.prefs,内容如下

修改成

打开该maven项目的 .settings 下面的 org.eclipse.wst.common.component,内容如下

修改成

打开该maven项目的 .settings 下面的 org.eclipse.wst.common.project.facet.core.xml,内容如下

修改成

以上都改好后,可以看到,已经将maven工程转换为Dynamic Web Module 3.0了,大工告成。这是一种解决办法,但是治标不治本,更高级的就是自定义catalog,然后安装到本地,再创建maven工程的时候就啥都有了。

浙公网安备 33010602011771号