一、项目环境和技术点
IDE :eclipse
JDK :1.8(Java8)
工程 :Maven Project,聚合POM工程,jar包依赖的添加基于pom.xml配置管理
Maven:3.5
数据库:MySql(5.7)
Tomcat:8.0
框架 :Spring+SpringMvc+Mybatis--- SSM
JS :UI插件集合框架jquery-easyui-1.4.1,富文本编辑器kindeditor-4.1.10
SQL关系映射: Mybatis逆向工程,手动配置并生成PoJo(表对应的Java类)和Mapper(SQL语句映射类和xml文件)
反向代理服务器: Nginx (俄罗斯人开发--基于C)
小型文件存储系统:FastDFS(国人开发 --基于C)
Servlet:服务器端程序-->文件上传、文件列表展示、文件下载
说明:以上说的每一条都不是硬性条件,主要是针对当前项目而言,项目已发至我的下载资源中。
二、建立eclipse工作空间,并打开(空白项目)
本地磁盘建立一个文件目录,命名:SSM-Sample ,并在eclipse中打开
(1)配置文件夹自动生成(.metadata、RemoteSystemsTempFiles)
与这两个目录相关的IDE环境配置有:字体,编码,颜色............
(2)eclipse打开
三、本地配置Maven仓库
(1)官网下载Maven最新版本:下载地址
(2)下载完成后,本地解压缩,并配置系统环境变量
配置好后,CMD查看mvn版本号,验证一下
完了后,我们针对当前项目,在D盘创建一个Maven本地仓库的管理文件夹,取名Maven3.5(其实上面已经暴露了)
在该文件夹下,创建一个jar包存放的目录Maven_Jar,并拷贝一个Maven配置XML文件settings.xml
EditPlus编辑settings.xml,修改一处地方如下:
至此,我们的本地Maven仓库环境已经配置和搭建好!
四、eclipse中Maven插件配置
(1)
(2)
配置好后,点击Apply应用,OK退出!
Maven的作用:
(1)项目中基于pom.xml文件配置Jar包信息,Maven自动下载到本地文件夹
(1)管理Jar包:随着项目的扩展和壮大,项目需要的Jar包越来越多,传统方式是将Jar包添加进项目中,但是,Maven却可以为我们建立本地Jar包管理仓库,方便我们在用的时候直接在pom.xml文件里添加对应的Jar包依赖,然后去本地Maven仓库中寻找对应的Jar包,如果有,直接依赖使用,如果没有,再下载下来后依赖使用。
五、建立Maven父工程ssm-parent,类型为POM
(1)空白处鼠标右键New--other....
Finish后,打开pom.xml,进行Jar包信息添加
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ssm</groupId>
<artifactId>ssm-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 集中定义依赖版本号 -->
<properties>
<junit.version>4.12</junit.version>
<spring.version>4.1.3.RELEASE</spring.version>
<mybatis.version>3.2.8</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
<mysql.version>5.1.32</mysql.version>
<slf4j.version>1.6.4</slf4j.version>
<jackson.version>2.4.2</jackson.version>
<druid.version>1.0.9</druid.version>
<httpclient.version>4.3.5</httpclient.version>
<jstl.version>1.2</jstl.version>
<servlet-api.version>2.5</servlet-api.version>
<jsp-api.version>2.0</jsp-api.version>
<joda-time.version>2.5</joda-time.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<commons-io.version>1.3.2</commons-io.version>
<commons-net.version>3.3</commons-net.version>
<pagehelper.version>5.0.0</pagehelper.version>
<jsqlparser.version>0.9.1</jsqlparser.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<jedis.version>2.7.2</jedis.version>
<solrj.version>4.10.3</solrj.version>
<freemarker.version>2.3.23</freemarker.version>
<quartz.version>2.2.2</quartz.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 时间操作组件 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<!-- Apache工具组件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>${commons-net.version}</version>
</dependency>
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 日志处理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis.paginator.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</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-webmvc</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-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- JSP相关 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- 文件上传组件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!-- Redis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>${jedis.version}</version>
</dependency>
<!-- solr客户端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>${solrj.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
上面添加的Jar包,好多是本项目中用不到的,但是,我们ssm-parent就是一个父工程,它的作用就是集中配置Jar包,集中下载,具体添加依赖使用,在于继承了ssm-parent工程的子Maven Project
配置好后,Ctrl+S保存项目后,会看到eclipse中有下载进度条的提示,这就意味着,上述配置的Jar包,已经交由Maven插件下载到本地了,完成后,我们去本地Jar包存放的文件夹下查看一下:
注意,上述有一个com的文件夹,知道这个是什么吗?
六、安装Maven父工程ssm-parent到本地
ssm-parant的Group Id 我们在上面起名叫com.ssm(这可不是起着玩的),这就意味着,如果把这个POM Maven父工程安装到本地仓库的话,其所在的路径就应该是
.....\com\ssm\ssm-parent\....
作为父亲,有必要做个榜样,因此,我们Maven Install,安装ssm-parant到本地Maven仓库
安装过程中,控制台有消息输出,如果本地已经存在要安装的maven project了,再次安装依然会成功,只不过是覆盖掉原来的工程(其实主要是覆盖pom.xml文件中的Jar包信息)
安装成功后,我们去本地Maven文件夹下查看一下
至此我们的父工程已经准备就绪!