使用Eclipse构建Maven的SpringMVC项目
2016-08-23 11:34
465 查看
使用Eclipse构建Maven的SpringMVC项目
首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e。
用MyEclipse安装Maven插件,建出的Maven项目有些问题。一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。要么真不在WEB-INF生成classes了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。
用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。
将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。
一、直接建立Maven项目方法1、建立Maven项目
接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:
1.1 选择建立Maven Project
选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击newxt。
![](http://dl.iteye.com/upload/attachment/357956/15f666df-1dee-3b57-8e23-36f101d3f5d8.png)
1.2 选择项目路径
Use default Workspace location默认工作空间。
![](http://dl.iteye.com/upload/attachment/357958/710ac8a7-5833-3bb8-815a-6f90fceb7623.png)
1.3 选择项目类型
在Artifact Id中选择maven-archetype-webapp
![](http://dl.iteye.com/upload/attachment/357960/bd6a2335-ea36-3606-a5d3-75ecd739ff92.png)
1.4 输入Group ID和 Artifact ID,以及Package
Group ID一般写大项目名称。Artifact ID是子项目名称。
例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。
Package是默认给你建一个包,不写也可以。
![](http://dl.iteye.com/upload/attachment/357962/e3dbc9bf-1ff7-396e-86ad-7698fc321a8e.png)
1.5 刚建立好后的文件结构如下图
![](http://dl.iteye.com/upload/attachment/357978/459da30e-317d-3024-82aa-90beb507c183.png)
如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。
2、配置Maven项目
接下来就需要更改好多配置了。
2.1 添加Source文件夹
接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder,
建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
![](http://dl.iteye.com/upload/attachment/357980/3a50a05a-d6c2-3570-a7b7-6c4351d1c84b.png)
![](http://dl.iteye.com/upload/attachment/357982/f6031745-c5b6-3eaa-bed5-7d00bce91caa.png)
2.2 更改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.
在此处还要更改:
更改文件夹显示的顺序:点击Order and Export。
更改JDK版本:在Libraries双击JRE System Library,要1.6版本。
![](http://dl.iteye.com/upload/attachment/357984/9b09cb91-7cdc-387e-b8ab-bfd504363833.png)
2.3 把项目变成Dynamic Web项目
2.3.1 右键项目,选择Project Facets,点击Convert to faceted from
![](http://dl.iteye.com/upload/attachment/357986/90cb6af7-e66e-36f7-93dd-a8dbb809146e.png)
2.3.2 配置Project Facets
更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。
如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。
![](http://dl.iteye.com/upload/attachment/357990/7146caa8-1652-3fbd-8cf1-4eff8d13933a.png)
2.3.3 配置 Modify Faceted Project
点击Further configuration available…,弹出Modify Faceted Project窗口
此处是设置web.xml文件的路径,我们输入src/main/webapp。
Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。
2.4 设置部署程序集(Web Deployment Assembly)
上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:
![](http://dl.iteye.com/upload/attachment/357992/d8d75b79-e276-3e4b-a121-c172cb00f126.png)
此处列表是,部署项目时,文件发布的路径。
1,我们删除test的两项,因为test是测试使用,并不需要部署。
2,设置将Maven的jar包发布到lib下。
Add -> Java Build Path Entries -> Maven Dependencies -> Finish
设置完成效果图
![](http://dl.iteye.com/upload/attachment/357996/1def857e-b75a-35f3-ac0b-b7f1c42db7ec.png)
3、向maven项目中添加jar包
maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。
3.1 在pom.xml中添加所需要的jar包
在 search.maven.org中搜索你需要的jar包,然后点击后面的,例如all(111)
找到你需要的版本号,可以使用最新的,也可以使用比较成熟的版本号,例如下面的3.x.x版本:
点击版本号,将左侧的依赖粘贴
10c28
到pom.xml相应的位置即可。
这样向maven项目中添加jar包的过程就over啦。
不过,如果使用其他方法,例如参考博客中所使用的:使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web......,有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。
Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。
![](http://dl.iteye.com/upload/attachment/477959/41aeca9f-970e-398f-a19e-4c914f1d14ee.png)
4、构建SpringMVC框架
4.1 编辑web.xml文件
需要添加log4j,字符过滤,Spring 的dispatcher等。
webx.xml代码如下:
Xml代码
![](http://limingnihao.iteye.com/images/icon_star.png)
xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd"
version="2.5" >
<context-param>
<param-name>webAppRootKeyparam-name>
<param-value>maven.example.rootparam-value>
context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListenerlistener-class>
listener>
<filter>
<filter-name>CharacterEncodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
<init-param>
<param-name>forceEncodingparam-name>
<param-value>trueparam-value>
init-param>
filter>
<filter-mapping>
<filter-name>CharacterEncodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<servlet>
<servlet-name>dispatcherservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>/WEB-INF/dispatcher-servlet.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet-name>
<url-pattern>*.dourl-pattern>
servlet-mapping>
web-app>
4.2 编写Spring配置文件dispatcher-servlet.xml
如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:
Xml代码
![](http://limingnihao.iteye.com/images/icon_star.png)
xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="liming.maven.example" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
bean>
beans>
4.3 编写一个Controller层测试类
编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:
Java代码
![](http://limingnihao.iteye.com/images/icon_star.png)
package liming.maven.example.view;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GeneralController {
@RequestMapping(value="index.do")
public void index_jsp(Model model){
model.addAttribute("liming", "黎明你好");
System.out.println("index.jsp");
}
}
4.4 编写index.jsp页面
首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。
在views下建index.jsp文件
我们使用jstl获取Controlleradd的数据。
Jsp页面代码如下:
Html代码
![](http://limingnihao.iteye.com/images/icon_star.png)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<c:out value="${liming}">c:out>
body>
html>
5,发布到tomcat
这个就没啥说的了。
Eclipse下Tomcat常用设置:http://limingnihao.iteye.com/admin/blogs/825394
6,测试
访问地址:http://localhost:8080/liming.maven.example/index.do
访问的结果来个截图:
转自<<http://limingnihao.iteye.com/blog/830409>>
首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e。
用MyEclipse安装Maven插件,建出的Maven项目有些问题。一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。要么真不在WEB-INF生成classes了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。
用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。
将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。
一、直接建立Maven项目方法1、建立Maven项目
接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:
1.1 选择建立Maven Project
选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击newxt。
![](http://dl.iteye.com/upload/attachment/357956/15f666df-1dee-3b57-8e23-36f101d3f5d8.png)
1.2 选择项目路径
Use default Workspace location默认工作空间。
![](http://dl.iteye.com/upload/attachment/357958/710ac8a7-5833-3bb8-815a-6f90fceb7623.png)
1.3 选择项目类型
在Artifact Id中选择maven-archetype-webapp
![](http://dl.iteye.com/upload/attachment/357960/bd6a2335-ea36-3606-a5d3-75ecd739ff92.png)
1.4 输入Group ID和 Artifact ID,以及Package
Group ID一般写大项目名称。Artifact ID是子项目名称。
例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。
Package是默认给你建一个包,不写也可以。
![](http://dl.iteye.com/upload/attachment/357962/e3dbc9bf-1ff7-396e-86ad-7698fc321a8e.png)
1.5 刚建立好后的文件结构如下图
![](http://dl.iteye.com/upload/attachment/357978/459da30e-317d-3024-82aa-90beb507c183.png)
如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。
2、配置Maven项目
接下来就需要更改好多配置了。
2.1 添加Source文件夹
接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder,
建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
![](http://dl.iteye.com/upload/attachment/357980/3a50a05a-d6c2-3570-a7b7-6c4351d1c84b.png)
![](http://dl.iteye.com/upload/attachment/357982/f6031745-c5b6-3eaa-bed5-7d00bce91caa.png)
2.2 更改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.
在此处还要更改:
更改文件夹显示的顺序:点击Order and Export。
更改JDK版本:在Libraries双击JRE System Library,要1.6版本。
![](http://dl.iteye.com/upload/attachment/357984/9b09cb91-7cdc-387e-b8ab-bfd504363833.png)
2.3 把项目变成Dynamic Web项目
2.3.1 右键项目,选择Project Facets,点击Convert to faceted from
![](http://dl.iteye.com/upload/attachment/357986/90cb6af7-e66e-36f7-93dd-a8dbb809146e.png)
2.3.2 配置Project Facets
更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。
如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。
![](http://dl.iteye.com/upload/attachment/357990/7146caa8-1652-3fbd-8cf1-4eff8d13933a.png)
2.3.3 配置 Modify Faceted Project
点击Further configuration available…,弹出Modify Faceted Project窗口
此处是设置web.xml文件的路径,我们输入src/main/webapp。
Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。
2.4 设置部署程序集(Web Deployment Assembly)
上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:
![](http://dl.iteye.com/upload/attachment/357992/d8d75b79-e276-3e4b-a121-c172cb00f126.png)
此处列表是,部署项目时,文件发布的路径。
1,我们删除test的两项,因为test是测试使用,并不需要部署。
2,设置将Maven的jar包发布到lib下。
Add -> Java Build Path Entries -> Maven Dependencies -> Finish
设置完成效果图
![](http://dl.iteye.com/upload/attachment/357996/1def857e-b75a-35f3-ac0b-b7f1c42db7ec.png)
3、向maven项目中添加jar包
maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。
3.1 在pom.xml中添加所需要的jar包
在 search.maven.org中搜索你需要的jar包,然后点击后面的,例如all(111)
找到你需要的版本号,可以使用最新的,也可以使用比较成熟的版本号,例如下面的3.x.x版本:
点击版本号,将左侧的依赖粘贴
10c28
到pom.xml相应的位置即可。
这样向maven项目中添加jar包的过程就over啦。
不过,如果使用其他方法,例如参考博客中所使用的:使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web......,有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。
Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。
![](http://dl.iteye.com/upload/attachment/477959/41aeca9f-970e-398f-a19e-4c914f1d14ee.png)
4、构建SpringMVC框架
4.1 编辑web.xml文件
需要添加log4j,字符过滤,Spring 的dispatcher等。
webx.xml代码如下:
Xml代码
![](http://limingnihao.iteye.com/images/icon_star.png)
xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd"
version="2.5" >
<context-param>
<param-name>webAppRootKeyparam-name>
<param-value>maven.example.rootparam-value>
context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListenerlistener-class>
listener>
<filter>
<filter-name>CharacterEncodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
<init-param>
<param-name>forceEncodingparam-name>
<param-value>trueparam-value>
init-param>
filter>
<filter-mapping>
<filter-name>CharacterEncodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<servlet>
<servlet-name>dispatcherservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>/WEB-INF/dispatcher-servlet.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet-name>
<url-pattern>*.dourl-pattern>
servlet-mapping>
web-app>
4.2 编写Spring配置文件dispatcher-servlet.xml
如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:
Xml代码
![](http://limingnihao.iteye.com/images/icon_star.png)
xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="liming.maven.example" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
bean>
beans>
4.3 编写一个Controller层测试类
编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:
Java代码
![](http://limingnihao.iteye.com/images/icon_star.png)
package liming.maven.example.view;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GeneralController {
@RequestMapping(value="index.do")
public void index_jsp(Model model){
model.addAttribute("liming", "黎明你好");
System.out.println("index.jsp");
}
}
4.4 编写index.jsp页面
首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。
在views下建index.jsp文件
我们使用jstl获取Controlleradd的数据。
Jsp页面代码如下:
Html代码
![](http://limingnihao.iteye.com/images/icon_star.png)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<c:out value="${liming}">c:out>
body>
html>
5,发布到tomcat
这个就没啥说的了。
Eclipse下Tomcat常用设置:http://limingnihao.iteye.com/admin/blogs/825394
6,测试
访问地址:http://localhost:8080/liming.maven.example/index.do
访问的结果来个截图:
转自<<http://limingnihao.iteye.com/blog/830409>>
相关文章推荐
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- [转]使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目(一)
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目
- 使用Eclipse构建Maven的SpringMVC项目