Eclipse + Maven + SSM框架整合 超详细的讲解

Eclipse + Maven + SSM框架整合 

一 、前言
用maven我们能做什么,有什么好处?
用maven,我们可以方便统一的进行jar包管理,jar包版本升级,快速项目构建以及分模块开发等相关功能。另外 Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,比如:不像我们在传统的框架中测试我们需要在classpath下单独创建一个测试的文件目录等。再次,maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。
maven使用得好,项目开发速度就会成倍的提升。总之,项目越大,越能体现maven的优势。

二 、软件环境

本次讲解使用的环境如下:

Eclipse 
apache-maven-3.3.9
JDK1.8
apache-tomcat-7.0.79

三、maven安装配置和Eclipse中maven的集成

这里不再详细说明,再次我提供一个参考地址:

四 、Eclipse+Maven创建webapp项目

首先看下一Maven的项目结构:


1、开启eclipse,右键new——》other,输入maven 如下图找到maven project


2、选择maven project,显示创建maven项目的窗口,勾选如图所示,Create a simple project(skip archetype selection表示跳过骨架,骨架表示一些创建模板),这里我们不使用模板更加简单(这只是其中的一种方式)。


3、输入maven项目的基本信息,这里我们要注重前四项,其中Version我们按照默认信息不管,但如果是web工程,在Packaging栏我们要选择war,如下图所示:


4、完成maven项目的创建,生成相应的maven项目结果,(但是会有一定的错误,不过不要紧)如下所示:


报错是因为webapp目录下没有web.xml。我们随便从其它web工程里面拷贝WEB-INF目录过来即可,完成后如图:


你会发现还有一个错误未解决,这是因为jdk版本不一致的问题(默认是1.5的)

5、接下来拷贝下面这段代码到pom.xml里面,用来确定项目的jdk编译版本,如(这里给出代码,可粘贴复制):

< build >
     < plugins >
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
        < artifactId >maven-compiler-plugin</ artifactId >
        < version >3.5.1</ version >
         <!-- 设置JDK版本 -->
          < configuration >
           < source > 1.8 </ source >
           < target > 1.8 </ target >
           < encoding > utf-8 </ encoding >
         </ configuration >
       </ plugin >
     </ plugins >
</ build >
即:

这时候,项目又会报错,我们配置完成后,需要执行一次更新项目配置的动作。选中项目 --> 右键 -->Maven --> Update Project(eclipseluna 版本,helios 或indigo 版本选择 Update Project Configuration)。更新完成之后,错误消失,jdk版本也更改过来了,如图所示:


还有另一种方法就是不用在prom.xml添加这些代码,我们需要到响应的配置文件中去改:
如: Windows --> show view --> Navigator 找到如下目录(对着两个文件进行修改)


修改后为如图:(修改前这里就不展示了,前面也说了默认是1.5的)


同样更改完之后,选中项目 --> 右键 -->Maven --> Update Project,错误消失


这两种方法相对来说第一种比较简单,我很喜欢第一种

6、 经过前面的五个步骤我们的Maven项目已经搭建好了,接下来就是jar包的导入了; 在pom.xml中添加jar包依赖(这里给出的是SSM的一个配置,相对应的SSH相信大家也会找到可以去Maven中央仓库去找,下边我会介绍)

pom.xml

   < modelVersion > 4.0.0 </ modelVersion >
   < groupId > com.zxk </ groupId >
   < artifactId > MavenSSMPrj </ artifactId >
   < version > 0.0.1-SNAPSHOT </ version >
   < packaging > war </ packaging >
    <!-- 设置所依赖的jar包 -->
   < dependencies >
      <!-- 单元测试类jar包 -->
      < dependency >
        < groupId > junit </ groupId >
        < artifactId > junit </ artifactId >
        < version > 3.8.1 </ version >
        < scope > test </ scope >
      </ dependency >
      <!-- 数据库jar包 -->
      < dependency >
          < groupId > mysql </ groupId >
          < artifactId > mysql-connector-java </ artifactId >
          < version > 5.1.39 </ version >
      </ dependency >
           <!-- mybatis jar包 -->
      < dependency >
          < groupId > org.mybatis </ groupId >
          < artifactId > mybatis </ artifactId >
          < version > 3.4.1 </ version >
      </ dependency >
      <!-- mybatis和spring中间包 jar包 -->
      < dependency >
          < groupId > org.mybatis </ groupId >
          < artifactId > mybatis-spring </ artifactId >
          < version > 1.3.1 </ version >
      </ dependency >
      <!-- spring jar包 -->
      < dependency >
          < groupId > org.aspectj </ groupId >
          < artifactId > aspectjweaver </ artifactId >
          < version > 1.8.9 </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-aop </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-core </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-aspects </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-beans </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-context </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-context-support </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-expression </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-instrument </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-instrument-tomcat </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-jdbc </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-jms </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-messaging </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-orm </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-oxm </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-test </ artifactId >
          < version > 4.3.7.RELEASE </ version >
          < scope > test </ scope >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-tx </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-web </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-webmvc </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-webmvc-portlet </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >
      < dependency >
          < groupId > org.springframework </ groupId >
          < artifactId > spring-websocket </ artifactId >
          < version > 4.3.7.RELEASE </ version >
      </ dependency >   
           <!-- 1SP页面 jar包 -->
      < dependency >
          < groupId > taglibs </ groupId >
          < artifactId > standard </ artifactId >
          < version > 1.1.2 </ version >
      </ dependency >
      < dependency >
          < groupId > jstl </ groupId >
          < artifactId > jstl </ artifactId >
          < version > 1.2 </ version >
      </ dependency >
     
           <!-- 引用c3p0 依赖 jar包 -->
      < dependency >
          < groupId > com.mchange </ groupId >
          < artifactId > c3p0 </ artifactId >
          < version > 0.9.5.2 </ version >
      </ dependency >
      < dependency >
          < groupId > com.mchange </ groupId >
          < artifactId > mchange-commons-java </ artifactId >
          < version > 0.2.11 </ version >
      </ dependency >
         
          <!--  日志 jar包 -->
      < dependency >
          < groupId > log4j </ groupId >
          < artifactId > log4j </ artifactId >
          < version > 1.2.17 </ version >
      </ dependency >
         
      <!-- 其他类依赖 jar包-->
      < dependency >
          < groupId > commons-logging </ groupId >
          < artifactId > commons-logging </ artifactId >
          < version > 1.2 </ version >
      </ dependency >
      < dependency >
          < groupId > commons-io </ groupId >
          < artifactId > commons-io </ artifactId >
          < version > 2.4 </ version >
      </ dependency >
      < dependency >
          < groupId > commons-fileupload </ groupId >
          < artifactId > commons-fileupload </ artifactId >
          < version > 1.3.1 </ version >
      </ dependency >
      < dependency >
          < groupId > commons-codec </ groupId >
          < artifactId > commons-codec </ artifactId >
          < version > 1.10 </ version >
      </ dependency >
      < dependency >
          < groupId > com.fasterxml.jackson.core </ groupId >
          < artifactId > jackson-core </ artifactId >
          < version > 2.8.9 </ version >
      </ dependency >
      < dependency >
          < groupId > com.fasterxml.jackson.core </ groupId >
          < artifactId > jackson-databind </ artifactId >
          < version > 2.8.9 </ version >
      </ dependency >
      < dependency >
          < groupId > com.fasterxml.jackson.core </ groupId >
          < artifactId > jackson-annotations </ artifactId >
          < version > 2.8.9 </ version >
      </ dependency >
   </ dependencies >  
< build >
     < plugins >
       < plugin >
         < groupId > org.apache.maven.plugins </ groupId >
         < artifactId > maven-compiler-plugin </ artifactId >
         < version > 3.5.1 </ version >
         <!-- 设置JDK版本 -->
          < configuration >
           < source > 1.8 </ source >
           < target > 1.8 </ target >
           < encoding > utf-8 </ encoding >
         </ configuration >
       </ plugin >
     </ plugins >
</ build >
</ project >

这里在给出另一种写法(这种写法更方便我们对jar版本的更换)
pom.xml

   < modelVersion > 4.0.0 </ modelVersion >
   < groupId > com.zxk </ groupId >
   < artifactId > MavenSSMPrj </ artifactId >
   < version > 0.0.1-SNAPSHOT </ version >
   < packaging > war </ packaging >

      
<properties>  
        <!-- 设置项目编码编码 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <!-- 设置一些jar包的版本 -->
    <spring.version>4.3.8.RELEASE</spring.version>  
    <log4j.version>1.2.17</log4j.version>  
    <mysql.version>5.1.39</mysql.version>    
</properties>    
    <!-- 单元测试类jar包 -->
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>
<!-- 数据库jar包 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql.version}</version>
</dependency>
      <!-- mybatis jar包 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>
<!-- mybatis和spring中间包 jar包 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>
<!-- spring jar包 -->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.9</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-instrument</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-instrument-tomcat</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-messaging</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-oxm</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc-portlet</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-websocket</artifactId>
    <version>${spring.version}</version>
</dependency>

      <!-- 1SP页面 jar包 -->
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

     <!– 引用c3p0 依赖 jar包 –>
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
</dependency>
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>mchange-commons-java</artifactId>
    <version>0.2.11</version>
</dependency>
    
    <!– 日志 jar包 –>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>${log4j.version}</version>
</dependency>
    
    <!– 其他类依赖 jar包 –>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.9</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.9</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.9</version>
</dependency>   

< build >
     < plugins >
       < plugin >
         < groupId > org.apache.maven.plugins </ groupId >
         < artifactId > maven-compiler-plugin </ artifactId >
         < version > 3.5.1 </ version >
         <!-- 设置JDK版本 -->
          < configuration >
           < source > 1.8 </ source >
           < target > 1.8 </ target >
           < encoding > utf-8 </ encoding >
         </ configuration >
       </ plugin >
     </ plugins >
</ build >
</ project >


如果还需要另外的jar包,我们只需去Maven中央仓库(地址: http://mvnrepository.com/ )去搜索即可,它会给我们提供配置文件我们只需复制相关代码到我们的 pom.xml文件中即可。如:



7.接着就开始写我们的相关层次的代码了(我这里直接把我以前整合的ssm代码层次复制上去)

目录结构解释:

这里我们会发现一个错误:( The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path ),不用担心很简单,我们只需要给他添加一个Server Runtime运行环境即可;如:


这样错误即可消失

整合后目录结构为:



运行测试结果:



致此 Maven 整合SSM结束!

猜你喜欢

转载自blog.csdn.net/qq_40083897/article/details/80271728