文档章节

svn、git、maven的区别

 隔三差五的小幸福
发布于 2017/07/25 09:44
字数 670
阅读 44
收藏 0

今天学习了svn、git、maven的区别和关联,总结一下:

  1. git和svn、cvs都是代码版本管理工具。maven用来版本控制、构建项目、(配合nexus)添加依赖。

  2. git和svn的区别:

     svn必须要有服务端,只有网络连上服务端才能提交和更新。传输数据时需要利用服务器搭建svn来共享。并且svn的服务端是单一的,一旦服务器损坏整个版本库的历史记录都会丢失,也没有办法回滚。

     每一台装了git的电脑都是服务端,各台电脑之间可以相互同步和推送,不需要网络就可以提交到本地的git库里。git每台电脑都是服务端,只要两台电脑做过同步,任何一台坏了,另一台还保有着所有的历史记录,仍然可以提交更新回滚,不怕代码历史丢失。

  3. maven最重要的功能就是管理项目之间的依赖关系,使用一个xml来维护。如果工程中需要哪个类型的jar包,只需要在maven的pom.xml中配置一下项目名称和版本号即可,maven就会自动从网上为你下载jar包并让你的工程依赖上,你的本地硬盘的仓库目录能看到你用过的所有第三方项目的jar包和源代码,再也不用去下载那些来路不明的jar包再扔到工程里了,也不用担心写同一个项目的两个人使用了不同版本的jar包,以至搞出莫名其妙的问题。

4. maven可以通过添加maven repository(Maven仓库)中的依赖,减少项目中的jar数量,并且大的项目中模块交叉引用也能够用它很好地解决。

  5. git做版本控制,无论是否使用maven都行。

  6. 两者配合的方式,通过.gitignore文件中添加jar、target目录,可以避免将这些二进制文件、自动生成的文件加入到版本库中,从而减小版本库的大小,缩短同步时间。其他人同步之后,只需要执行maven命令,就能够自动从repo里面下载依赖,按照依赖树自底而上构建内部交叉依赖。
简单来说,maven让git不需要同步不必要的第三方库和自动生成的class、jar文件,并可以额外同步项目jdk版本等项目设置,标准化构建流程;git只是一个CVS工具,换成SVN、Mercurial也都可以。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 1
码字总数 670
作品 0
深圳
程序员
Maven自动部署(SCM-SVN/Git)(maven-scm-plugin/maven-release-plugin插件的使用)

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/mavendeployment_automation.html: 注意:Maven自动构建和自动部署的区别在于,构建只是编译代码阶段,而部署...

easonjim
2017/05/15
0
0
关于对-话说Svn与Git的区别-中,对svn的申诉

今天看到一篇文章:“话说Svn与Git的区别”https://www.jianshu.com/p/bfec042349ca,通篇都是讲git如何好,svn就没有什么用的样子,对于经常使用svn的我,我想做一点svn的申诉: 1.svn也可以...

zdhsoft
03/07
0
0
从svn上检出威尼斯人网站开发多模块maven项目

一、SVN上Maven多威尼斯人网站开发模块项目结构 haozbbs.com Q1446595067 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二、eclipse通过SVN导入到工作空间 工作空间位...

xmvn
07/09
0
0
super_empire/patch-generator-parent

patch-generator-parent 通用svn、git增量部署补丁生成器,可用于svn/git/getee管理的maven项目的增量部署文件生成,支持多模块父子项目. 该模块可以对git/svn管理的项目进行增量代码生成用于...

super_empire
04/20
0
0
通用 svn、git 增量部署补丁生成器 - patch-generator-parent

通用 svn、git 增量部署补丁生成器,可用于 svn/git/getee 管理的 maven 项目的增量部署文件生成,支持多模块父子项目。 总共包含四种生成方案: git 服务器分支提交分析; git 提交日志分析...

em_Aaron
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
27分钟前
1
0
Spring Aop原理之Advisor过滤

在上文(Spring Aop之Advisor解析)中我们讲到,Spring Aop对目标bean的代理主要分为三个步骤:获取所有的Advisor,过滤当前bean可应用的Advisor和使用Advisor为当前bean生成代理对象,并且上文...

爱宝贝丶
38分钟前
0
0
JMockit学习教程

1 JMockit中文网 我觉得如果仅仅是开发自测的话,把JMockit中文网认真看一遍,就可以在项目中使用JMockit了。 http://jmockit.cn/index.htm 2 JMockit中文教程 官方文档中文版。对于不喜欢看...

SuperHeroes
49分钟前
0
0
Linux服务器几乎从不采用Arch Linux?

我们见得多的Linux服务器系统一般都是什么Ubuntu Server啊,什么Cent OS啊,什么Fedora啊,或者企业采用的Red Hat啊,为什么几乎没有Arch Linux呢?下面我将从若干个方面指出Arch Linux在服务...

linux-tao
今天
0
0
js 函数柯里化 闭包

参考 https://mp.weixin.qq.com/s/GEHL3jarDdAAcr5tQGjmDg 一个统计求和的函数 需要知道整个数组的信息,然后遍历求值 function countMoney() { let money = 0 // 温馨提示:arguments...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部