`
woshixushigang
  • 浏览: 578486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

eclipse maven

 
阅读更多

使用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。


 

 

1.2 选择项目路径

Use default Workspace location默认工作空间。


 

 

1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp


 

 

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

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

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

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


 

 

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


 

如果这里显示的内容多,一般是 Filters 设置的问题。或 perspective JavaEE 模式,改成 Java 模式就可以了。

 

 

2、配置Maven项目

接下来就需要更改好多配置了。

 

2.1 添加Source文件夹

接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder,

建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。



 

 

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版本。


 

2.3 把项目变成Dynamic Web项目

 

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


 

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。


 

 

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,点击进去后,如下图:


 

 

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

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

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

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

设置完成效果图


 

 

 

 

 

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内容。




3.2设置jar包的scope

 

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

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

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

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

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

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

 

 

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


 

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

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


 

 

 

4、构建SpringMVC框架

 

4.1 编辑web.xml文件

 

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

webx.xml代码如下:

 

Xml代码 复制代码  收藏代码
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < web-app   xmlns = "http://java.sun.com/xml/ns/javaee"     
  3.           xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   
  4.           xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee    
  5.                              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    
  6.           version = "2.5"   >   
  7.        
  8.      <!-- 区分项目名称,防止默认重名 -->   
  9.      < context-param >   
  10.          < param-name > webAppRootKey </ param-name >   
  11.          < param-value > maven.example.root </ param-value >   
  12.      </ context-param >   
  13.   
  14.      <!-- Spring的log4j监听器 -->   
  15.      < listener >   
  16.          < listener-class > org.springframework.web.util.Log4jConfigListener </ listener-class >   
  17.      </ listener >   
  18.   
  19.      <!-- 字符集 过滤器  -->   
  20.      < filter >   
  21.          < filter-name > CharacterEncodingFilter </ filter-name >   
  22.          < filter-class > org.springframework.web.filter.CharacterEncodingFilter </ filter-class >   
  23.          < init-param >   
  24.              < param-name > encoding </ param-name >   
  25.              < param-value > UTF-8 </ param-value >   
  26.          </ init-param >   
  27.          < init-param >   
  28.              < param-name > forceEncoding </ param-name >   
  29.              < param-value > true </ param-value >   
  30.          </ init-param >   
  31.      </ filter >   
  32.      < filter-mapping >   
  33.          < filter-name > CharacterEncodingFilter </ filter-name >   
  34.          < url-pattern > /* </ url-pattern >   
  35.      </ filter-mapping >   
  36.   
  37.      <!-- Spring view分发器 -->   
  38.      < servlet >   
  39.          < servlet-name > dispatcher </ servlet-name >   
  40.          < servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >   
  41.          < init-param >   
  42.              < param-name > contextConfigLocation </ param-name >   
  43.              < param-value > /WEB-INF/dispatcher-servlet.xml </ param-value >   
  44.          </ init-param >   
  45.          < load-on-startup > 1 </ load-on-startup >   
  46.      </ servlet >   
  47.      < servlet-mapping >   
  48.          < servlet-name > dispatcher </ servlet-name >   
  49.          < url-pattern > *.do </ url-pattern >   
  50.      </ servlet-mapping >   
  51.   
  52. </ web-app >   
<?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>webAppRootKey</param-name>
		<param-value>maven.example.root</param-value>
	</context-param>

	<!-- Spring的log4j监听器 -->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>

	<!-- 字符集 过滤器  -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- Spring view分发器 -->
	<servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

</web-app>
 

 

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

 

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

 

Xml代码 复制代码  收藏代码
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < beans   xmlns = "http://www.springframework.org/schema/beans"     
  3.         xmlns:aop = "http://www.springframework.org/schema/aop"     
  4.         xmlns:context = "http://www.springframework.org/schema/context"   
  5.         xmlns:mvc = "http://www.springframework.org/schema/mvc"     
  6.         xmlns:tx = "http://www.springframework.org/schema/tx"     
  7.         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   
  8.         xsi:schemaLocation ="http://www.springframework.org/schema/aop    
  9.         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd    
  10.         http://www.springframework.org/schema/beans    
  11.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  12.         http://www.springframework.org/schema/context    
  13.         http://www.springframework.org/schema/context/spring-context-3.0.xsd    
  14.         http://www.springframework.org/schema/mvc    
  15.         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd    
  16.         http://www.springframework.org/schema/tx    
  17.         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" >   
  18.   
  19.      < mvc:annotation-driven   />   
  20.      < context:component-scan   base-package = "liming.maven.example"   />   
  21.   
  22.      < bean   class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >   
  23.          < property   name = "prefix"   value = "/WEB-INF/views/"   />   
  24.          < property   name = "suffix"   value = ".jsp"   />   
  25.      </ bean >   
  26.   
  27. </ beans >   
<?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代码 复制代码  收藏代码
  1. package  liming.maven.example.view;   
  2.   
  3. import  org.springframework.stereotype.Controller;   
  4. import  org.springframework.ui.Model;   
  5. import  org.springframework.web.bind.annotation.RequestMapping;   
  6.   
  7. @Controller   
  8. public   class  GeneralController {   
  9.   
  10.      @RequestMapping (value= "index.do" )   
  11.      public   void  index_jsp(Model model){   
  12.         model.addAttribute( "liming" "黎明你好" );   
  13.         System.out.println( "index.jsp" );   
  14.     }   
  15. }  
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代码 复制代码  收藏代码
  1. < %@ page  language = "java"   contentType = "text/html; charset=UTF-8"   pageEncoding = "UTF-8" % >   
  2. < %@ taglib  prefix = "c"   uri = "http://java.sun.com/jsp/jstl/core" % >   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >   
  4. < html >   
  5.      < head >   
  6.          < meta   http-equiv = "Content-Type"   content = "text/html; charset=UTF-8" >   
  7.          < title > Insert title here </ title >   
  8.      </ head >   
  9.        
  10.      < body >   
  11.          < c:out   value = "${liming}" > </ c:out >   
  12.      </ body >   
  13. </ html >   
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
	</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

访问的结果来个截图:


 

 

二、建立Dynamic Web project转成Maven项目方法

7、第二种方法DynamicWeb项目转成Mavan

7.1 新建Dynamic Web Project

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


 

7.2 配置项目信息

7.2.1 输入项目信息

首先输入项目名称。

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

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

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

Next。


7.2.2 配置source和output的folder

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

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

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


 

7.2.3 配置web.xml文件的路径


 

 

7.3 转成maven项目

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

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


 

7.4 其他配置

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

请参考上面。

2.1添加Source文件夹

2.2更改class路径。

2.3.3 配置 Modify Faceted Project

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

 

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

 

转自:http://limingnihao.iteye.com/blog/830409

分享到:
评论
2 楼 chenyx1220 2012-07-09  
没有说明如何编译和布署
1 楼 stone25 2012-06-01  
very good 

相关推荐

    Eclipse MavenSSM 增删改查示例

    本示例项目"**Eclipse Maven SSM 增删改查示例**"旨在帮助开发者理解和实践这些技术的集成使用,实现数据的CRUD(Create、Read、Update、Delete)操作。接下来,我们将详细探讨这个项目中的关键知识点。 **1. ...

    Eclipse Maven WEB工程实战.pdf

    根据提供的文件内容,知识点涵盖了Eclipse集成Maven的WEB工程实战操作步骤。以下是对这些步骤的详细解析: 1. **Eclipse集成Maven**: - 为了在Eclipse中使用Maven,首先需要安装m2e插件,这是一个官方提供的...

    eclipse maven3 plugin.zip

    直接离线安装eclipse中的maven插件,在你的eclipse安装根目录下创建两个文件夹:links,myplugins(文件夹名字可以自定义),所在路径D:\eclipse。将下载下来的maven插件放到myplugins下。载links目录下创建一个...

    eclipse maven插件包

    eclipse maven插件。 因在线安装地址出错,虽然可以去eclipse market中搜到,但有时版本问题,而安装失败。 该文件可以直接copy到eclipse直接子目录下,覆盖原来的plugin和feature文件夹。 不过推荐使用link...

    eclipse Maven jpa简单demo.zip

    【标题】"Eclipse Maven JPA简单DEMO"是一个针对初学者设计的示例项目,旨在教授如何在Java环境中,特别是在Maven项目中使用Java Persistence API (JPA)进行数据库查询。这个DEMO以Eclipse作为开发环境,利用Spring ...

    eclipseMaven插件

    Eclipse Maven插件是开发Java项目的重要工具,它将Maven的强大功能集成到Eclipse IDE中,使得开发者能够在熟悉的环境中管理项目的构建、依赖和生命周期。本文将深入探讨Eclipse Maven插件的各个方面,包括其作用、...

    Eclipse MAVEN离线插件

    Eclipse MAVEN离线插件是为开发人员提供的一种便捷方式,使得在没有网络连接或者网络环境不稳定的情况下,也能在Eclipse集成开发环境中使用Maven功能。Maven是一个强大的项目管理和构建工具,广泛用于Java应用的开发...

    eclipse maven3 离线插件

    Eclipse Maven3 离线插件是一款专为Eclipse集成开发环境设计的Maven构建工具,它使得开发者能够在不连接互联网的情况下安装和使用Maven功能。Maven是一个项目管理和综合工具,它通过一个中央仓库下载依赖并管理Java...

    Eclipse Maven插件,SVN插件

    在Eclipse中,Maven和SVN是两个非常重要的插件,它们对于Java开发人员尤其关键。 Maven是一个项目管理和综合工具,它可以帮助开发者管理项目的构建、依赖关系以及报告。在Eclipse中,Maven插件,通常被称为m2e(M2...

    eclipse maven plugin 插件 安装 和 配置.docx

    ### Eclipse Maven Plugin 插件安装与配置指南 #### 一、引言 在现代软件开发过程中,Maven作为一款强大的构建工具,极大地简化了项目的构建流程。为了更好地集成Maven的功能,Eclipse提供了名为Eclipse Maven ...

    eclipse-maven3-plugin

    Eclipse Maven3 Plugin是专为Eclipse集成开发环境设计的一款插件,它的主要功能是将Maven构建工具无缝地整合到Eclipse中,为开发者提供更便捷的Maven项目管理和开发体验。通过这款插件,用户可以在Eclipse内部直接...

    eclipse maven debug

    标题 "eclipse maven debug" 涉及到的是在Eclipse集成开发环境中使用Maven进行调试的相关技术。Maven是Java项目管理工具,而Eclipse是流行的Java IDE,两者结合可以帮助开发者高效地管理和调试项目。 在Eclipse中...

    eclipse maven 离线插件

    Eclipse Maven离线插件是开发环境中非常实用的工具,特别是在网络环境不稳定或者速度较慢的情况下。Maven作为Java项目管理的重要框架,帮助开发者管理依赖、构建和部署项目。而Eclipse作为流行的Java IDE,其集成的...

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    Eclipse Maven项目中配置Jetty

    在Eclipse中配置Maven项目以使用Jetty服务器是一个常见的任务,这主要适用于开发和测试阶段,因为它提供了快速的启动和重启能力。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,广泛用于Java Web应用。...

    eclipse maven插件

    Eclipse Maven插件是开发人员在Eclipse IDE中管理和构建Maven项目的重要工具。它集成了Maven的构建生命周期和项目对象模型(POM),使得用户可以在Eclipse环境中方便地执行Maven的目标,如编译、测试、打包、部署等...

    eclipse maven3插件

    Eclipse Maven3插件,全称为Maven Integration for Eclipse(简称m2e),是Eclipse IDE中的一个核心插件,用于支持Apache Maven项目构建和管理工具。它将Maven的强大功能无缝集成到Eclipse环境中,使得开发人员可以...

    EOVA框架整合WEBSERVICE ,eclipse maven环境 简单实用。内含说明.

    **EOVA框架整合WebService与Eclipse Maven环境** EOVA(Enterprise Object Virtual Application)是一个轻量级的企业级应用框架,主要用于简化开发过程,提高开发效率。本教程将介绍如何在Eclipse IDE中,利用Maven...

    eclipse maven svn 插件 离线安装

    在IT行业中,开发人员经常需要使用各种工具来提高效率,其中Eclipse是一个广泛使用的Java集成开发环境(IDE),Maven是构建和管理Java项目的重要工具,而Subversion(SVN)则是版本控制系统,用于跟踪代码的修改。...

    eclipse Maven 插件 丢到plugins下就可以用

    org.maven.ide.eclipse_0.0.12.20071107-2300.jarorg.maven.ide.eclipse_0.0.12.20071107-2300.jarorg.maven.ide.eclipse_0.0.12.20071107-2300.jarorg.maven.ide.eclipse_0.0.12.20071107-2300.jarorg.maven.ide....

Global site tag (gtag.js) - Google Analytics