首先了解下maven和svn是什么:

Maven是一个项目的管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目的生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段 中插件的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件的目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
个人理解:
(1)maven可以实现管理一个项目,它的pom.xml文件标志着这个项目是maven项目。
(2)它可以实现jar包的管理,对jar包的管理是maven自动进行下载的,其中最常用的是maven的中央仓库,之前有介绍过 http://search.maven.org,在这里可以搜索所需要的jar包以及jar包的版本,直接添加到maven的pom文件中。
(3)当一个项目比较复杂的时候,我们可以采用分布式架构,这个时候就需要建立多个工程,而各个工程是具有依赖关系的,这样就需要maven来管理这些工程,最终实现项目的整体运行。可以实现项目的整体构建打包和发布。
(4)maven的工程类型:war 包(即web工程,基于此包的项目,表示是一个web项目)jar包(java工程)pom工程(这是个聚合工程,用来实现各个工程的依赖)
maven在eclipse中的使用:
目前eclipse的最新版本已经自带maven插件,这样就不需要我们进行安装插件了,我们只需要修改maven的仓库就可以,maven的仓库一般以m2来命名,一般存在本机电脑用户的文件中。

在eclipse中的Windows/preference/maven可以查看maven,在这里可以查看maven的仓库地址

当我们在做了多个项目时候积累了项目所需要的jar包时,我们可以直接将maven的本地仓库覆盖,仓库里面存放的是它所依赖的jar包。

在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二进制文件方面并不出色。

Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。

简言之,Maven仓库能帮助我们管理构件(主要是JAR)。

这时候我们可以直接将maven的仓库覆盖掉,变为自己项目所依赖的jar包的。

即将:C:\Users\Administrator\.m2的.m2文件夹覆盖掉。我们来看下这个文件夹下面是什么内容:

我们以后,如果有新的jar包,我们就可以自己创建一个.m2的文件夹,然后覆盖掉maven的本地仓库就可以在项目中使用了。

接下来我们看下svn的使用:

什么是svn呢?

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,实现多人开发项目的便利性,程序员可以通过SVN修改代码,其他程序员可以看到修改的内容,实现代码的同步性,每天提交自己的代码,具有实时性。

svn在eclipse中的安装和使用:

安装:在进行svn的安装过程中遇到了些小插曲,我们来具体看下svn:

首先我们需要下载svn的服务器,

打开这个服务器我们可以看到

我们今后项目的上传就是上传到这个服务器上面,这里可以创建分支用户,即多个用户访问这台服务器。

然后在eclipse中安装svn:

这里我们借鉴下:主要有两种方式,一种是覆盖文件,一种是在线安装。这里遇到了版本兼容的问题,就是我们要下载最新的那个svn,跟我们的最新的eclipse兼容。

如果没有安装的请到这里下载安装:http://eclipse.org/downloads/ 

2、下载SVN插件subclipse,安装方法有两种.那种绿色的以link方式安装的方式我在indogo上试了多次就是没成功。 

3、SVN插件下载地址及更新地址,你根据需要选择你需要的版本。现在最新是1.8.x 
Links for 1.8.x Release: 
Eclipse update site URL: http://subclipse.tigris.org/update_1.8.x 
svn插件包下载: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 

Links for 1.6.x Release: 
Eclipse update site URL: http://subclipse.tigris.org/update_1.6.x 
svn插件包下载: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 

Links for 1.4.x Release: 
Eclipse update site URL: http://subclipse.tigris.org/update_1.4.x 
svn插件包下载: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 

4、下载插件包,将插件包复制到Eclipse安装目录。见图 
   
   下载后的插件包目录结构: 

 

将插件包features和plugins目录中的文件分别复制到Eclipse安装目录的features和plugins中。然后重启Eclipse 就好了 



5、通过Eclipse安装,看图 

 





然后一路点Next,就OK了!!

将项目添加到存储库

要将新的项目添加到 Subversion 存储库,请右击该项目(可以在任何 Eclipse 的项目视图或 Navigator 视图),并且从菜单中选择 Team > Share Project。Eclipse 会显示 Share Project 对话框。

从 Eclipse 当前支持的存储库列表中选择 SVN,然后单击 Next。接下来的对话框(参见图 13)让您选择现有存储库位置,或者创建一个新位置。

这样就可以实现项目工程的上传了。

对于提交到svn的项目,我们需要注意,我们只需要提交src的文件和pom.xml的文件,其他的可以忽略。

提交到svn的项目,如果我们下载下来,发现不是maven项目,我们需要转化下:

maven项目上面有个M的图标。

右键工程-configure-convert to maven project

即可。

 
 

淘淘商城基于maven和svn的理解的更多相关文章

  1. (转)淘淘商城系列——使用maven构建工程

    http://blog.csdn.net/yerenyuan_pku/article/details/72669269 开发工具和环境 这里,我统一规范一下淘淘商城的开发工具和环境,如下: Eclip ...

  2. 001淘淘商城项目:项目的Maven工程搭建

    开始一个新的项目,特此记录,资料全部来源于传智播客,感谢. 我们要做一个类似电商的项目.用maven做管理. maven里面主要分为三种工程: 1:pom工程:用在父级工程,聚合工程中 2:war工程 ...

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

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

  4. ZZJ_淘淘商城项目:day01(RESTful Web Service、SVN)

    淘淘商城项目是很适合初级Java程序员练习的实战项目,本次复习是另一位张老师教授的课,内容上与之前入老师版taotao商城比较有些新东西加了进来. 因此有必要记录下那些直到现在还可供参考的技术亮点分享 ...

  5. JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建

    1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...

  6. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十三天(非原创)

    文章大纲 一.课程介绍二.SolrCloud介绍与搭建三.工程部署四.参考资料下载五.参考文章   一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用 ...

  7. day68_淘淘商城项目_01

    原文:day68_淘淘商城项目_01 课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建 ...

  8. day68_淘淘商城项目_01_电商介绍 + 互联网术语 + SOA + 分布式 + 集群介绍 + 环境配置 + 框架搭建_匠心笔记

    课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建工程(工程大) b) 使用maven的 ...

  9. 淘淘商城_day11_课堂笔记

    今日大纲 发布前的准备 实施发布 一部分是由我来发布 一部分是由你们来发布 讲解分布式部署架构 测试 功能测试 压力测试 项目实战的准备以及分组 分组 抽取功能 讲解所需要开发的功能 项目部署上线流程 ...

随机推荐

  1. 【对noip结束后一个月内的总结】

    最近在刷一些树结构,但发现没有一个提纲,觉得有点不知所措,经常学完一个就发现还有比它更好的,而且比较耗时间.于是沙茶准备按顺序刷bzoj的省选题,看看效果怎么样……求大神指教

  2. app状态监听广播

    手机中的应用在安装.更新和卸载时都会发送广播 清单文件 <?xml version="1.0" encoding="utf-8"?> <man ...

  3. date 显示或设置系统时间和日期

    显示或设置系统时间和日期 date [options] [+format] date [options] [new date] date用来显示系统的时间和日期,超级用户可以使用date来更改系统时钟 ...

  4. 新的博客 bincoding.github.io

    最近周围的人都在用静态博客,随主流也换了github page搭建hexo. bincoding.github.io 个人网站,用来上线乱七八糟的东西: bincoding.cn

  5. git创建仓库

    创建仓库 git init: Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令. ...

  6. Android 用代码设置Shape,corners,Gradient

    网上查找资料 记录学习 int strokeWidth = 5; // 3dp 边框宽度 int roundRadius = 15; // 8dp 圆角半径 int strokeColor = Col ...

  7. nodeJS+express+Jade写一个局域网聊天应用(node基础)

    为了复习一下nodeJS, 而且socketIO这东西听起来就好高端有木有, 而且有人写过了open, 也可以作为自己的参考有木有, 点击下载源代码: express是4.x的版本, 跟以前的配置有些 ...

  8. 区间DP lightoj 1031

    在此游戏中任意时刻的状态都是原始序列的一段子序列故: 定义d(i, j) : 表示原来序列的第i ~ j个元素组成的子序列,在双方都采取最优策略的情况下,先手得分的最大值. 状态转移时,需要枚举从左边 ...

  9. Java类加载器总结

    1.类的加载过程   JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据: 2)链 ...

  10. 【LintCode】计算两个数的交集(二)

    问题分析: 用两个指针分别遍历即可. 问题求解: public class Solution { /** * @param nums1 an integer array * @param nums2 ...