当前位置: 移动技术网 > IT编程>开发语言>Java > Eclipse 使用Maven构建SpringMVC项目

Eclipse 使用Maven构建SpringMVC项目

2019年07月22日  | 移动技术网IT编程  | 我要评论

  首先eclipse需要安装maven的插件,地址:。

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153113697.png

1.2 选择项目路径

use default workspace location默认工作空间。

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153123922.jpg

1.3 选择项目类型

在artifact id中选择maven-archetype-webapp

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153136591.jpg

1.4 输入group id和 artifact id,以及package

group id一般写大项目名称。artifact id是子项目名称。

例如spring的web包,group id:org.springframework,artifactid:spring-web。

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153137533.jpg

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153133489.jpg

如果这里显示的内容多,一般是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://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153147944.jpg

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153147414.jpg

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://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153153654.jpg

2.3 把项目变成dynamic web项目

2.3.1 右键项目,选择project facets,点击convert to faceted from

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153153625.jpg

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://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153156824.jpg

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://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153164036.jpg

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

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

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

add -> java build path entries -> maven dependencies -> finish

设置完成效果图

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153165763.jpg

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153176204.jpg

3.2设置jar包的scope

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153179404.jpg

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

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

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

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

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

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

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153183387.jpg

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

eclipse在线安装路径:。选择for eclipse wtp。

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153183357.jpg

4、构建springmvc框架

4.1 编辑web.xml文件

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

webx.xml代码如下:

<?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 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层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:

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"%> 
<!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

这个就没啥说的了。

6. 测试

访问地址:

访问的结果来个截图:

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153186557.jpg

二、建立dynamic web project转成maven项目方法
7、第二种方法dynamicweb项目转成mavan

7.1 新建dynamic web project

  依次选择选择file -> new -> other。在new窗口中选择web下的dynamic web project。点击next。

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153223412.jpg

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

首先输入项目名称。

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

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

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

next。

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153278983.jpg

7.2.2 配置source和output的folder

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

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

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153284880.jpg

7.2.3 配置web.xml文件的路径

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153284851.jpg

7.3 转成maven项目

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

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

http://www.lhsxpumps.com/_images4/10qianwan/20190722/b_0_201907221153284821.jpg

7.4 其他配置

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

请参考上面。

2.1 添加source文件夹

2.2 更改class路径。

2.3.3 配置 modify faceted project

2.4 设置部署程序集(web deployment assembly)

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

附件下载:

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网