一.创建项目
1.Eclipse中用Maven创建项目
上图中Next
2.继续Next
3.选maven-archetype-webapp后,next
4.填写相应的信息,Packaged是默认创建一个包,不写也可以
5.创建好项目后,目录如下:
至此,项目已经创建完毕,下边可是配置。
二.项目配置
1.添加Source Folder
Maven规定,必须创建以下几个Source Folder
src/main/resources
src/main/java
src/test/resources
src/test/java
添加以上的Source Folder
创建好后的目录如下:
2.配置Build Path
3.设定4个文件夹的输出Output folder,双击修改
分别修改输出路径为
src/main/resources 对应 target/classes
src/main/java 对应 target/classes
src/test/resources 对应 target/test-classes
src/test/java 对应 target/test-classes
4.修改后如下图(新的eclipse可能有所不同)
5.设定Libraries
6.配置完Build Path后目录如下:
7.将项目转换成Dynamic Web Project
在项目上右键Properties
在左侧选择 Project Facets,单击右侧的 ”Convert faceted from “
8.修改Java为你当前项目的JDK,并添加Dynamic Web Module ,最后单击”Further Configuration available“ 链接:(此处如果没有链接,可以取消Dynamic选中点击appply然后再次打开此界面选中)
9.修改Content directory 为 src/main/webapp ,单击OK:
10.设置完Content directory,ok后再次点击前一界面ok,完成转换成Dynamic Web Project项目
11.设置部署程序集(Web Deployment Assembly)
在项目上右键单击,选择Properties,在左侧选择Deployment Assembly
12.设置部署时的文件发布路径
1,我们删除test的两项,因为test是测试使用,并不需要部署。
2,设置将Maven的jar包发布到lib下。
Add -> Java Build Path Entries -> Maven Dependencies -> Finish
设置完成后如图
ok后,web项目就创建完毕了,目录机构如图

用maven创建web项目后,src下只有resources,接下来想在src/main中再添加目录名为java的源文件夹(source folder)用于存放java代码,但eclipse报出如下错误:
Cannot nest 'tst/src/main/java' inside 'tst/src/'. To enable the nesting exclude main/' from 'tst/src/'
以上错误是提示你想要创建的source folder已经存在在classpath中了,不能再创建了。你也许会很奇怪,我都没创建过,为什么提示我source folder已经存在?这是因为在maven创建项目的时候,maven已经默认帮你配置好了,从项目的java build path中可以看到,图中所示的source folder显示是missing的,也就是不存在的,因为在项目中maven并没有帮你真实创建source folder,如图所示:
这个时候你或许又有疑问了,既然maven没有真实的创建source folder,那为什么还不让我创建src/main/java ? 原因是这样的,虽然上图显示src/main/java并不存在,但是有个地方已经确确实实将src/main/java配置到src下了。这个文件就是classpath文件,每个项目下都有这样一个文件,用于配置src下的类和资源文件的路径以及编译的路径,如下图:
解决方法:
右击项目-->"properties"-->"java build path",将缺失的source folder删除掉,然后重新在项目中创建source folder即可。删除后,项目下的.classpath中所配置的相应的src也会被去除掉。