热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Eclipse使用Maven构建SpringMVC项目

本文主要介绍在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。点击next。

//img.jbzj.com/file_images/article/201606/201606131508024.png

1.2 选择项目路径

Use default Workspace location默认工作空间。

//img.jbzj.com/file_images/article/201606/201606131508025.png

1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp

//img.jbzj.com/file_images/article/201606/201606131508036.png

1.4 输入Group ID和 Artifact ID,以及Package

Group ID一般写大项目名称。Artifact ID是子项目名称。

例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。

Package是默认给你建一个包,不写也可以。

//img.jbzj.com/file_images/article/201606/201606131508037.png

1.5 刚建立好后的文件结构如下图

//img.jbzj.com/file_images/article/201606/201606131508038.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。

//img.jbzj.com/file_images/article/201606/201606131508049.png

//img.jbzj.com/file_images/article/201606/2016061315080410.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版本。

//img.jbzj.com/file_images/article/201606/2016061315080411.png

2.3 把项目变成Dynamic Web项目

2.3.1 右键项目,选择Project Facets,点击Convert to faceted from

//img.jbzj.com/file_images/article/201606/2016061315080512.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。

//img.jbzj.com/file_images/article/201606/2016061315080513.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,点击进去后,如下图:

//img.jbzj.com/file_images/article/201606/2016061315080514.png

此处列表是,部署项目时,文件发布的路径。

1.我们删除test的两项,因为test是测试使用,并不需要部署。

2.设置将Maven的jar包发布到lib下。

Add -> Java Build Path Entries -> Maven Dependencies -> Finish

设置完成效果图

//img.jbzj.com/file_images/article/201606/2016061315080515.png

3、向maven项目中添加jar包

maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。

3.1 在pom.xml中添加所需要的jar包

使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。

//img.jbzj.com/file_images/article/201606/2016061315080616.png

3.2设置jar包的scope

//img.jbzj.com/file_images/article/201606/2016061315080617.png

当添加进入一个jar包后,有一些属性需要设置,最重要的就是scope,它有以下几种取值:

1.compile,缺省值,适用于所有阶段,会随着项目一起发布。

2.provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

3.runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

4.test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

5.system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。

通常SpringMVC项目所需要配置scope的jar包如下图:

//img.jbzj.com/file_images/article/201606/2016061315080618.png

有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。

Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。

//img.jbzj.com/file_images/article/201606/2016061315080619.png

4、构建SpringMVC框架

4.1 编辑web.xml文件

需要添加log4j,字符过滤,Spring 的dispatcher等。

webx.xml代码如下:

<&#63;xml version="1.0" encoding="UTF-8"&#63;> 
 
 
  
  
 webAppRootKey 
 maven.example.root 
  
 
  
  
 org.springframework.web.util.Log4jConfigListener 
  
 
  
  
 CharacterEncodingFilter 
 org.springframework.web.filter.CharacterEncodingFilter 
  
  encoding 
  UTF-8 
  
  
  forceEncoding 
  true 
  
  
  
 CharacterEncodingFilter 
 /* 
  
 
  
  
 dispatcher 
 org.springframework.web.servlet.DispatcherServlet 
  
  contextConfigLocation 
  /WEB-INF/dispatcher-servlet.xml 
  
 1 
  
  
 dispatcher 
 *.do 
  
 

4.2 编写Spring配置文件dispatcher-servlet.xml

如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:

<&#63;xml version="1.0" encoding="UTF-8"&#63;> 
 
 
  
  
 
  
  
  
  
 

4.3 编写一个Controller层测试类

 

编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:

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页面代码如下:

<%@ page language="java" cOntentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
 
 
  
  
  
  
 
  
  
  
 

5. 发布到tomcat

这个就没啥说的了。

6. 测试

访问地址:http://localhost:8080/liming.maven.example/index.do

访问的结果来个截图:

//img.jbzj.com/file_images/article/201606/2016061315080720.png

二、建立Dynamic Web project转成Maven项目方法
7、第二种方法DynamicWeb项目转成Mavan

7.1 新建Dynamic Web Project

  依次选择选择File -> New -> Other。在New窗口中选择Web下的Dynamic Web Project。点击next。

//img.jbzj.com/file_images/article/201606/2016061315080721.png

7.2 配置项目信息
7.2.1 输入项目信息

首先输入项目名称。

Target runtime 一般选择使用什么容器,tomcat之类的。可以先不选。

Dynamic web module version。就是版本号。选择2.5(3.0是Java7的)。

Configuration 是选择容易的配置。如果Target runtime选择了tomcat。这里对应也是选择tomcat。

Next。

//img.jbzj.com/file_images/article/201606/2016061315080722.png

7.2.2 配置source和output的folder

此窗口输入需要建立的Source folders。和默认output folder。

这个我们的Source folders等建立完项目后在添加。

output folder可以顺手改成target/classes。

//img.jbzj.com/file_images/article/201606/2016061315080723.png

7.2.3 配置web.xml文件的路径

//img.jbzj.com/file_images/article/201606/2016061315080824.png

7.3 转成maven项目

Dynamic web项目建立完后,首先将其转成maven项目。

右键此项目,选择maven -> Enable Dependency Management。弹出的窗口,直接finish就可以了。

//img.jbzj.com/file_images/article/201606/2016061315080825.png

7.4 其他配置

接下来的配置工作就和前面的基本一样了。

请参考上面。

2.1 添加Source文件夹

2.2 更改class路径。

2.3.3 配置 Modify Faceted Project

2.4 设置部署程序集(Web Deployment Assembly)

接着就是构建SpringMVC框架,发布到tomcat,测试。

附件下载:

liming.maven.example.zip

liming.dynamic.example.zip


推荐阅读
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
author-avatar
200355人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有