首页 > 代码库 > 01淘淘商城项目:项目Maven工程搭建

01淘淘商城项目:项目Maven工程搭建

最近在学习淘淘商城项目的搭建,使用maven做管理

 

后台管理系统工程搭建:

使用maven的好处:

1.依赖管理、jar包、工程之间依赖

2.项目构建:实现项目的一步构建

3.工程聚合、继承、依赖

 

maven工程分为三种类型:

pom工程:用在父级工程,聚合工程中

war包工程:主要用作网站

jar包工程:就是当作jar使用的,可以用来打包

 

先给出总的项目结构,然后再解释是如何实现这些结构的

技术分享

解释如下:

1.taotao-parent

taotao-parent公司级别的maven工程。主要功能是统一公司做各种项目时用的jar包的版本

比如我们做淘淘商城,或者别的什么项目都要去继承这个项目。

首先安装本地仓库:

把该文件拷贝到自己机子的对应.m2目录下覆盖本地仓库的内容

技术分享

技术分享

下面开始创建maven工程

new-->选择maven project

技术分享

技术分享

然后修改pom.xml文件,如下:

配置所有jar包的版本信息

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

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

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

         </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包,注意这个taotao-parent的maven的工程的意义在于统一公司所有项目用的jar包的版本

所以他的特点就是不实现具体的jar包依赖,

只实现版本的控制:

 <!-- 只定义版本,并不实际依赖-->
   <dependencyManagement>

加了这句话,我们就可以只控制版本,不实现具体的依赖。我们知道Maven的依赖需要三个坐标:

<groupId></groupId>
<artifactId></artifactId>
<version></version>

继承这个taotao-parent工程的项目,只需要两个坐标:
<groupId></groupId>
<artifactId></artifactId>
此时就不需要版本了,因为已经从继承中得到了版本号,所以不需要在定义


2.taotao-common
这个工程是存放公用的工具类:比如什么单元测试啊,json包什么的。因为公司的项目不会只有我们这么一个taotao项目用这些工具类,
别的项目也会有用的,所以我们呢把这些工具类统一出来。
建立过程如下:注意我们用的是jar.而且继承之前的taotao-parent工程。

技术分享

 


 

01淘淘商城项目:项目Maven工程搭建