淘淘商城系列(一)—— 搭建项目工程(三)

 

1、使用maven的好处

使用maven管理工程。

      1.Jar包的管理

      2.工程之间的依赖管理

      3.自动打包

       4.统一的版本的控制

 

 

2、后台管理系统工程搭建分析

Maven的常见打包方式:jar、war、pom

Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理。聚合工程。

 

taotao-parent:父工程,打包方式pom,管理jar包的版本号。

    |           项目中所有工程都应该继承父工程。

|--taotao-common:通用的工具类通用的pojo,util。打包方式jar

|--taotao-manager:服务层工程。聚合工程。Pom工程

|--taotao-manager-dao:打包方式jar

|--taotao-manager-pojo:打包方式jar

|--taotao-manager-interface:打包方式jar

|--taotao-manager-service:打包方式:war  (为了发布服务的方便)

|--taotao-manager-web:表现层工程。打包方式war

 

3、项目工程搭建

开发环境:eclipse mars2  (32)

Maven:3.3.9

本地仓库:默认位置在~/.m2/repository

Eclipse不需要配置,只需要把本地仓库放到当前用户目录下的.m2下。

jdk  1.7   (32位)

 

1.taotao-parent

Pom工程。

 

创建工程:

右击鼠标 ---》NEW --》Maven Project

 

 

Pom文件

<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.taotao</groupId>

     <artifactId>taotao-parent</artifactId>

     <version>0.0.1-SNAPSHOT</version>

     <packaging>pom</packaging>

     <!-- 集中定义依赖版本号 -->

     <properties>

         <junit.version>4.12</junit.version>

         <spring.version>4.2.4.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>3.4.2-fix</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>

         <dubbo.version>2.5.3</dubbo.version>

         <zookeeper.version>3.4.7</zookeeper.version>

         <zkclient.version>0.1</zkclient.version>

         <activemq.version>5.13.0</activemq.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>

              <!-- quartz任务调度框架 -->

              <dependency>

                   <groupId>org.quartz-scheduler</groupId>

                   <artifactId>quartz</artifactId>

                   <version>${quartz.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-jms</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>

              <!-- dubbo相关 -->

              <dependency>

                   <groupId>com.alibaba</groupId>

                   <artifactId>dubbo</artifactId>

                   <version>${dubbo.version}</version>

              </dependency>

              <dependency>

                   <groupId>org.apache.zookeeper</groupId>

                   <artifactId>zookeeper</artifactId>

                   <version>${zookeeper.version}</version>

              </dependency>

              <dependency>

                   <groupId>com.github.sgroschupf</groupId>

                   <artifactId>zkclient</artifactId>

                   <version>${zkclient.version}</version>

              </dependency>

              <dependency>

                   <groupId>org.apache.activemq</groupId>

                   <artifactId>activemq-all</artifactId>

                   <version>${activemq.version}</version>

              </dependency>

              <dependency>

                   <groupId>org.freemarker</groupId>

                   <artifactId>freemarker</artifactId>

                   <version>${freemarker.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>



                   <!-- 配置打包时跳过测试 ,首次配置使用的时候会自动联网进行下载 -->

                   <plugin>

                       <groupId>org.apache.maven.plugins</groupId>

                       <artifactId>maven-surefire-plugin</artifactId>

                       <version>2.12.4</version>

                   </plugin>

              </plugins>

         </pluginManagement>

     </build>

</project>

 

2.taotao-common

通用的工具类、通用的pojo。打包方式jar。需要继承父工程。

同样的,右击鼠标 NEW-->Maven Project

 

Pom文件

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

     <parent>

         <groupId>com.taotao</groupId>

         <artifactId>taotao-parent</artifactId>

         <version>0.0.1-SNAPSHOT</version>

     </parent>

     <groupId>com.taotao</groupId>

     <artifactId>taotao-common</artifactId>

     <version>0.0.1-SNAPSHOT</version>

     <!-- 依赖工具类的jar包 -->

     <dependencies>

         <!-- 时间操作组件 -->

         <dependency>

              <groupId>joda-time</groupId>

              <artifactId>joda-time</artifactId>

         </dependency>

         <!-- Apache工具组件 -->

         <dependency>

              <groupId>org.apache.commons</groupId>

              <artifactId>commons-lang3</artifactId>

         </dependency>

         <dependency>

              <groupId>org.apache.commons</groupId>

              <artifactId>commons-io</artifactId>

         </dependency>

         <dependency>

              <groupId>commons-net</groupId>

              <artifactId>commons-net</artifactId>

         </dependency>

         <!-- Jackson Json处理工具包 -->

         <dependency>

              <groupId>com.fasterxml.jackson.core</groupId>

              <artifactId>jackson-databind</artifactId>

         </dependency>

         <!-- httpclient -->

         <dependency>

              <groupId>org.apache.httpcomponents</groupId>

              <artifactId>httpclient</artifactId>

         </dependency>

         <!-- quartz任务调度框架 -->

         <dependency>

              <groupId>org.quartz-scheduler</groupId>

              <artifactId>quartz</artifactId>

         </dependency>

         <!-- 单元测试 -->

         <dependency>

              <groupId>junit</groupId>

              <artifactId>junit</artifactId>

         </dependency>

         <!-- 日志处理 -->

         <dependency>

              <groupId>org.slf4j</groupId>

              <artifactId>slf4j-log4j12</artifactId>

         </dependency>

     </dependencies>

</project>

 

3.taotao-manager

聚合工程。打包方式pom

同样 右击鼠标-->NEW--> Maven Project

 

Pom文件

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

     <parent>

         <groupId>com.taotao</groupId>

         <artifactId>taotao-parent</artifactId>

         <version>0.0.1-SNAPSHOT</version>

     </parent>

     <groupId>com.taotao</groupId>

     <artifactId>taotao-manager</artifactId>

     <version>0.0.1-SNAPSHOT</version>

     <packaging>pom</packaging>

     <dependencies>

         <dependency>

              <groupId>com.taotao</groupId>

              <artifactId>taotao-common</artifactId>

              <version>0.0.1-SNAPSHOT</version>

         </dependency>

     </dependencies>

</project>

4.taotao-manager-pojo

 

 

是一个maven模块,打包方式为jar。

选择taotao-manager 右击鼠标--》NEW ---》Maven Module

 

创建后效果如下

 

Pom文件

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

     <parent>

         <groupId>com.taotao</groupId>

         <artifactId>taotao-manager</artifactId>

         <version>0.0.1-SNAPSHOT</version>

     </parent>

     <artifactId>taotao-manager-pojo</artifactId>

</project>

 

5.taotao-manager-dao

是Maven模块,打包方式jar。

选择taotao-manager 右击鼠标--》NEW ---》Maven Module

Pom文件

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-dao</artifactId>
	<!-- 依赖的jar包 -->
	<dependencies>
<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-pojo</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- Mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.miemiedev</groupId>
			<artifactId>mybatis-paginator</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
		</dependency>
		<!-- MySql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- 连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
		</dependency>
	</dependencies>
</project>

6.taotao-manager-interface

Maven模块,打包方式jar包

选择taotao-manager 右击鼠标--》NEW ---》Maven Module

Pom文件

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-interface</artifactId>
	<dependencies>
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-pojo</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>
</project>

7.taotao-manager-service

打包方式war包。

选择taotao-manager 右击鼠标--》NEW ---》Maven Module

Pom文件

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-service</artifactId>
	<packaging>war</packaging>
	<dependencies>
            <!-- taotao dao依赖 -->
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-dao</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
            <!-- taotao的接口的依赖 -->
            <dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-interface</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- spring的依赖 -->
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
	</dependencies>
</project>

创建web.xml,可以手动创建或者使用如下操作

8.taotao-manager-web

表现层,打包方式war。(继承taotao-parent)

右击鼠标 --》NEW -->Maven Project

 

创建web.xml

Pom文件

<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>
	<parent>
		<groupId>com.taotao</groupId>
		<artifactId>taotao-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.taotao</groupId>
	<artifactId>taotao-manager-web</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<dependencies>
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<!-- JSP相关 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- 文件上传组件 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
		</dependency>
	</dependencies>
	<!-- 配置tomcat插件 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8081</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

到这里,我们项目基本就都搭建好了。

各个工程的样子如上。