使用Maven创建web项目
1.打开Eclipse, 选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project;点击Next。
2.选择项目路径,这里选择Use default Workspace location默认工作空间。
3.选择项目类型,在Artifact Id中选择maven-archetype-webapp。
4.输入Group Id和 Artifact Id,package可以不写。
Group Id:类似于包名
Artifact Id:项目的名称
Version:初始的版本号,一般不需要改动
5.点击Finish,会生成一个这样目录的项目。
6.修改项目编码方式
在项目上右键 -> Properties -> Resource -> Text file encoding -> 改为“utf-8”。
7.添加Source文件夹
接下来需要添加src/main/java、src/test/java、src/test/resources三个文件夹。注意不是建普通的Folder,而是Source Folder。在项目上右键new -> Other,在New窗口中选择
Java -> Source Folder。
8.在项目上右键,选择Properties,在弹出的属性窗口中依次选择Java Build Path -> Libraries -> JRE System Library -> Edit。
9.在Edit Library窗口中修改JRE为jdk1.7.0_25。
10.设置好之后的目录结构如下图所示:
这时看到src/main/java和src/test/java文件夹就已经显示出来了。
11.让项目使用jdk 1.7编译
在项目上右键 -> 选择Properties -> 选择Java Compiler -> 将Compiler Compliance Level 改为“1.7”。
12.更改class路径
右键项目,选择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。(如果没有选上的话)
13.把项目变成Dynamic Web项目
右键项目,选择Properties,在属性窗口中选择Project Facets,修改Java版本号为1.7,默认为1.5或其他版本。注:先去掉“Dynamic Web Module”,然后再保存。
14.接下来继续右键项目 -> Properties ->选择Project Facets -> 勾选“Dynamic Web Module”,选择版本为3.0 -> 然后点击下方的“Further configuration available...”。
15.在弹出的窗口中修改Content directory为“src/main/webapp”。
设置好之后的项目结构如下图所示,可以看到在webapp下面多了一个META-INF文件夹。
或者还有一种做法,就是在“Modify Faceted Project”窗口中不用修改Content directory,即用他的默认值“WebContent”。
接下来观察我们的项目结构,多了一个WebContent目录。
这个结构不符合maven的结构,我们还要做如下修改:
把上图WebContent下面两个目录 META-INF ,WEB-INF 直接剪切到src/main/webapp目录下,并删掉WebContent目录即可。
16.设置部署程序集(Web Deployment Assembly)
在项目上右键,选择Properties -> Deployment Assembly,点击进去后,如下图:
此处列表是,部署项目时,文件发布的路径。
(1)我们删除跟test相关的项,因为test是测试使用,并不需要部署。
(2)设置将Maven的jar包发布到lib下。
在右边点击“Add”按钮,在弹出的窗口中选择Java Build Path Entries。
点击Next,选择Maven Dependencies
点击Finish,然后可以看到已经把Maven Dependencies添加到Web应用结构中了,完成后如下图:
17.至此一个基于maven的webapp就建立好了,并可以直接从eclipse中发布到tomcat。发布完成后,进入到tomcat的部署路径,我的是D:\apache-tomcat-7.0.27\webapps\SSMProDemo,发现WEB-INF目录下自动生成了lib目录,并且所有依赖的jar包也都已经部署进来。如果没有lib目录,说明项目依赖的jar包没有部署进来,这时运行程序会报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener。