文档章节

svn、git、maven的区别

 隔三差五的小幸福
发布于 2017/07/25 09:44
字数 670
阅读 36
收藏 0
点赞 0
评论 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

关于对-话说Svn与Git的区别-中,对svn的申诉

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

zdhsoft ⋅ 03/07 ⋅ 0

super_empire/patch-generator-parent

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

super_empire ⋅ 04/20 ⋅ 0

通用 svn、git 增量部署补丁生成器 - patch-generator-parent

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

em_Aaron ⋅ 04/13 ⋅ 0

【git学习】SVN项目迁移到Git操作指南

2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情。 git学习——>在CenterOS系统...

qq446282412 ⋅ 05/19 ⋅ 0

GIT科普系列1:git如何放弃本地working directory的修改,以及回滚

背景: 版本管理对开发人员来说至关重要,之前一直使用svn(主要是TortoiseSVN)作为团队配合的协作工具。但是自己相关的开源项目使用的是git发布在github上。由于项目自身的局限性,很少有大...

zssureqh ⋅ 2016/06/19 ⋅ 0

全自动发版部署工具 - patch-generator-desk

patch-generator-desk 项目增量补丁包神器:全自动web增量打包发版,支持git/svn,支持多模块项目。 - Author:aaron - [项目地址:https://gitee.com/hackempire/patch-generator-desk] - [e...

em_Aaron ⋅ 05/02 ⋅ 0

Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)

SVN Publisher Plugin:https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher 构建完成后的文件,比如Maven打的war包,可以通过SVN Publisher Plugin插件上次到指定的SVN,下面是收集...

easonjim ⋅ 2017/05/08 ⋅ 0

实战:使用SVN+apache搭建一个版本控制服务器

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

寰宇01 ⋅ 06/14 ⋅ 0

版本控制可视化工具 - Gource

Gource 是一个很好玩的可视化工具,可以针对 Git,SVN 的 log 进行分析并做可视化处理。可以将代码仓库的历史变成视频,支持 Git 和 SVN 等多种格式。 只要在仓库目录执行 gource 命令,就能...

匿名 ⋅ 2012/11/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部