本文使用 Eclipse 集成 Maven,并创一个基于 maven的web工程
一 环境版本信息
本文使用的版本信息如下:
Eclipse Version: Mars.1 Release (4.5.1)
Maven Version: Apache maven 3.2.1
Jave Version : 1.7.0_25+
二 创建一个Web项目
1)打开eclipse 选择 File --> New --> Other -->Maven -->Maven Projet
2)选择maven-archetype-webapp
3)填写项目信息
4)生产的Web项目包结构
4.1)把项目转为 Dynamic Web Module,在项目上点击右键,选择属性,然后选择Project facets,然后点击Convert to faceted form...
勾选Dynamic Web Module,选择3.0,表示支持servlet3.0
勾选Java,选择1.7或更高的jdk版本
但是Eclipse会报 "Cannot change version of project facet Dynamic Web Module to 3.0"异常。需要找到工程项目的硬盘目录,打开项目下的 .setting文件夹,如下图:
找到 .setting文件夹内的org.eclipse.wst.common.project.facet.core.xml文件,文件格式大致如下:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.5"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
直接修改jst.web对应的version即可,比如: <installed facet="jst.web" version="3.0"/> ,表示支持 servlet 3.0版本。修改后在进入界面如下图所示:
4.2)工具只生成了一个叫 src/main/resources的source folder,需要手工添加 src/main/java、src/test/java和src/test/resources 三个source folder,在项目上右键 New -->Source Folder,输入folder name即可。但项目会报 The folder is already a source folder的错误。一共需要以下四个目录:
src/main/java
src/main/resources
src/test/java
src/test/resources
注意:在执行此步之前,需要点击项目,右键鼠标选择 Properties --> Java Build Path --> Source 会看到src/main/java已存在,但是Missing。所以只需要创建目录,Source Floder就出现了。
解决方法:是哪一个 Folder报Missing错误就把它删除掉,然后在重新手工添加 ,比如 src/main/java。
4.3)配置部署的程序Deployment Assembly,删掉test的那两项,test的程序发布的时候不需要,添加maven的依赖库,发布的时候可以发布到lib目录中,添加/src/main/webapp为部署的根目录
5)配置tomcat8,发布运行项目
如果使用的是MyEclipse创建的Maven Web工程,使用了默认的artifactId模板,那么创建的项目会出现空格,那么可以按照如下方式,修改模板的配置。
6) Eclipse 配置Maven命令
在项目右击选择 Run As -> Run Configurations ...
在弹出的窗口,在Goals写入必要的Maven命令 jetty:run,比如运行嵌入式服务器Jetty, 对应的Maven命令 mvn jetty:run
补充资料:
1, 内置Servlet Container
Java服务器支持的Servlet 版本号和Java版本号之间的关系。
Name | Servlet Version | Java Version |
---|---|---|
Tomcat 8 |
3.1 |
Java 7+ |
Tomcat 7 |
3.0 |
Java 6+ |
Jetty 9.3 |
3.1 |
Java 8+ |
Jetty 9.2 |
3.1 |
Java 7+ |
Jetty 8 |
3.0 |
Java 6+ |
Undertow 1.3 |
3.1 |
Java 7+ |