http://blog.csdn.net/yerenyuan_pku/article/details/72669269

开发工具和环境

这里,我统一规范一下淘淘商城的开发工具和环境,如下:

  • Eclipse 4.5.2(Mars2),其自带maven插件,需要手工安装svn插件,但我提供的这个eclipse,svn插件已经搭好了
  • Maven-3.3.9(开发工具自带)
  • Tomcat-7.0.75(Maven Tomcat Plugin)
  • JDK 1.7
  • MySQL 5.7.17
  • Nginx 1.8.0
  • Redis 3.0.0
  • Win10 操作系统
  • SVN(版本管理工具)

工程搭建

使用maven的好处

  1. 项目构建。Maven定义了软件开发的整套流程体系,并进行了封装,开发人员只需要指定项目的构建流程,无需针对每个流程编写自己的构建脚本。
  2. 依赖管理。除了项目构建,Maven最核心的功能是软件包的依赖管理,能够自动分析项目所需要的依赖软件包,并到Maven中心仓库去下载。 
    • 管理Jar包的依赖。
    • 管理工程之间的依赖关系,即可使用Maven依赖其他的工程。

后台工程搭建分析

Maven常见的打包方式有:

  • jar 
    jar工程,很显然就是pom工程的子工程,由pom工程来管理。
  • war 
    war工程是一个web工程,是可以直接放到tomcat下运行的工程。
  • pom 
    pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理,它是一个聚合工程。其实说白了它只有一个pom.xml文件,一般是作为父工程出现的,只是定义了一些依赖、插件、还有一些版本号等等。

后台管理系统的工程使用Maven构建工具创建,工程之间的依赖关系如下: 

  • taotao-parent:父工程,其打包方式是pom,主要管理jar包的版本号。项目中的所有工程都应该继承父工程。

    • taotao-common:存放一些通用的工具类、通用的pojo。其打包方式为jar,被其他的工程所依赖。
    • taotao-manager:服务层工程,又称之为聚合工程或pom工程。

      • taotao-manager-pojo:这是一个独立的模块,其打包方式是jar。
      • taotao-manager-dao:这是一个独立的模块,其打包方式是jar。
      • taotao-manager-interface:打包方式是jar。
      • taotao-manager-service:打包方式是war,主要为了方便部署。
    • taotao-manager-web:表现层工程,打包方式是war。

搭建taotao-parent工程

在这里我使用maven来搭建taotao-parent这个父工程,taotao-parent本身就是一个父工程,所以它不需要继承其他的工程,我们主要在父工程中定义依赖jar包的版本和Maven插件的版本信息。注意,此处我使用的maven是apache-maven-3.3.9这个版本。 
首先点击【File】菜单选项,并在下拉框中选中【New】,接着点击【Other】,如下: 

在输入框中输入maven,并选择Maven Project,如下: 

点击【Next】,勾选Create a simple project复选框,如果你不打上这个勾,它会让你选择一个骨架,但骨架里面没有pom这个模板的。 

点击【Next】,出现如下对话框,在该对话框中定义maven工程的坐标,如下: 

最后点击【Finish】,可发现新创建的taotao-parent工程为: 

可以看出这个pom文件内容很简单,就这么几个——当前这个工程的坐标以及其打包方式。现在我们需要在这个父工程里面管理jar包的版本号,怎样管理jar包的版本号呢?那就需要在pom文件中进行配置了。下面我提供一个比较全面的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.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.11.2</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</

转载于:https://www.cnblogs.com/telwanggs/p/6933691.html

(转)淘淘商城系列——使用maven构建工程相关推荐

  1. (转)淘淘商城系列——使用maven构建工程时出现的错误

    http://blog.csdn.net/yerenyuan_pku/article/details/72690846 我觉得maven就他妈是一个傻逼,反正我是对它无语了.昨天刚刚使用maven构建 ...

  2. (转)淘淘商城系列——使用maven tomcat插件启动聚合工程

    http://blog.csdn.net/yerenyuan_pku/article/details/72672389 上文我们一起学习了如何使用maven tomcat插件来启动web工程,本文我们 ...

  3. 淘淘商城第6讲——使用maven构建工程时出现的错误

    我觉得maven就他妈是一个傻逼,反正我是对它无语了.昨天刚刚使用maven构建完工程,都没有出现任何问题,而且运行也是没有任何问题的,妈蛋,今天把Eclipse开发工具一打开,就出现了错误,截图如下 ...

  4. (转)淘淘商城系列——使用maven tomcat插件启动web工程

    http://blog.csdn.net/yerenyuan_pku/article/details/72672138 上文我们一起学习了怎样搭建maven工程,这篇文章我就来教大家一起学习怎样用to ...

  5. (转)淘淘商城系列——服务调用测试

    http://blog.csdn.net/yerenyuan_pku/article/details/72761467 我们已经发布dubbo服务,现在本文来测试一下引用dubbo服务是否好使.在启动 ...

  6. 一个淘淘商城项目送给你,愿你有一个灿烂的前程!

    写在前面 今天是2020年6月23日,星期二,天气晴.2020年已过一半,回想一下,这真是一个多灾多难的年份啊!可生活依然要继续,活着的人依然要继续前行.这是没道理的事情. 好了,回到主题,说说写这篇 ...

  7. 使用maven构建Spring工程的一些重点

    2019独角兽企业重金招聘Python工程师标准>>>     有人喜欢把一个下载的spring3.1和struts1.3下载包里的的lib目录下所有的jar不管三七二十一全部cop ...

  8. 通向架构师的道路(第十九天)使用maven构建Spring工程

    一.前言 上次大家拿了我上传的工程后,有些人自己通过spring3,struts1.3,hibernate3的download的包自行去装配jar包到工程的WEB-INF\lib目录下.有些是通过我上 ...

  9. (转)淘淘商城系列——内容管理

    http://blog.csdn.net/yerenyuan_pku/article/details/72845954 上文我们一起学习了内容分类管理,虽说实现了展示内容分类和新增节点这两个功能,但重 ...

最新文章

  1. python将注释写入xml_python 注释xml的元素
  2. leetcode算法题--骑士在棋盘上的概率★
  3. OpenGL ES 如何能看到一个物体内部和象3dmax中能只显示网格线
  4. 音视频封装格式、编码格式知识
  5. powermock模拟对象_使用PowerMock模拟构造函数
  6. 转专业学计算机难嘛,大学转专业容易吗 转专业需要什么条件
  7. 综述 | 万字长文带你入门近几年深度学习的重要研究成果
  8. Java 如何抛出异常、自定义异常、手动或主动抛出异常
  9. java程序包怎么更新,从Java 8升级到Java 11-软件包sun.util不存在
  10. J2EE基础之EJB
  11. cad四级计算机考试,国家CAD等级考试介绍
  12. u3d_fw 框架使用
  13. 个人信息安全规范----3、个人信息的收集、存储、使用
  14. 一键DDOS防火墙安装程序
  15. 善于总结、不断反思做更好的自己
  16. java use g1_深入理解 Java G1 垃圾收集器
  17. 分布式 | dble 读写分离场景下为什么普通的读 sql 发送到了 master 实例上
  18. R 中 facet_wrap() 和 facet_grid() 的区别
  19. win7网络里面没有计算机,Win7没有无线网络选项教你完美解决
  20. android ca,如何在Android设备上安装可信CA证书?

热门文章

  1. matlab中tr什么意思,tr命令详解
  2. FPGA系统时间戳偶尔异常分析及定位
  3. ios运行html游戏,Objective-c / iOS – 使用Safari打开本地html文件
  4. AD19无法生成PCB_对PCB印制线的传输线效应以及封装、连接器和电缆的频率响应进行全面分析...
  5. 1014.QxORM移植
  6. 数据结构-二叉树、搜索树、平衡二叉树详解及C语言实现
  7. nginx基础概念(100%)之connection
  8. 大端机,小端机;截断与提升
  9. MATLAB目标检测恒虚警技术,一种自适应的恒虚警率目标检测方法
  10. 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统