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工程的时候就啥都有了。

posted @ 2018-02-28 21:28  将王相  阅读(214)  评论(0)    收藏  举报