淘淘商城第8讲——向SVN服务器提交代码
发布日期:2021-06-30 17:55:15 浏览次数:2 分类:技术文章

本文共 7128 字,大约阅读时间需要 23 分钟。

回顾一下之前所新建的SVN仓库

在上一讲中,我们一起学习了如何来安装SVN服务器并且新建了一个名称为taotao-javaee的空的仓库,如下图所示。

在这里插入图片描述
从上图中我们可以清楚地看到taotao-javaee仓库下有三个空的文件夹,它们分别是branches、tags以及trunk,你不仅就要问了,这三个文件夹分别代表什么意思呢?下面我就来告诉大家,如有讲得不好的地方,还请指出,大家可以一起讨论。

branches

branches文件夹代表的是分支。如何理解分支这一概念呢?举个例子,我们在开发项目时往往会分版本,比如1.0、2.0之类的,当我们开发完1.0版本之后,往往就要拉一个分支出来,这时主干继续开发2.0版本。但是1.0版本上线之后肯定会遇到一些bug,遇到bug我们肯定要处理啊,那么我们在哪儿进行处理呢?答案是在分支上,因为主干上的代码加入了很多新特性,还未经过详细测试,不稳定性比较高,而分支上的代码是旧的代码,并没有加入新特性,因此改动起来更简单也更稳定些。当然了,在分支上改完之后,肯定要把分支上修改的代码合并到主干上来,因为我们不能让1.0版本的bug在2.0版本再重现。如果修复的是1.0版本的bug,那么修改完之后新建版本应该是1.1、1.2、1.3等等。

tags

tags文件夹代表的是标签,它主要是记录一些关键时间点,比如某个版本发布的时间,某个大的bug修改的版本等,我们在tags做下标记,这样方便我们根据标签找回我们想要的以前某个版本的代码。

trunk

trunk文件夹代表的是主干,它是我们平时开发所在的目录,也就是说在正常情况下,我们开发的代码应放在主干这儿。

主干的代码始终是最新的,版本也是不稳定的,需要经过多轮测试才能验收通过,这时再新建分支,然后接着开发新的版本。

你有可能对于这句话,不是那么的很明了,接下来,希望通过我比较通俗的话语可以让你理解得更加的深刻。举个例子,比方说我们开发一个项目,就拿淘淘商城这个项目来说,该淘淘商城项目有不同的版本进行迭代,例如taotao v1.0taotao v2.0taotao v3.0、······,这些不同的版本是主干上的版本。当我们开发出来taotao v1.0这个版本之后,就得发布一版。接下来,我们就要继续开发taotao v2.0这个版本了,这个时候我们依然是在主干上进行开发的。那么好了,现在taotao v1.0这个版本有bug了,改不改呢?那当然得改了,改的时候,能在主干上改吗?答案是不能。这个时候,主干已经开发完taotao v2.0这里面的功能了,你即便是在taotao v2.0这个主干上改完了,你也不能进行发布。因为taotao v2.0增加了一些新的功能,可能都还没有进行测试,这个时候,你再重新发布,那就肯定会包含一些有问题的功能点,所以,你不能在主干这儿改。

taotao v1.0这个版本一旦发布了之后,你就应该建一个分支(branches),然后主干继续向前开发。如果分支这里面有bug,那么就在分支里面进行修改,这样势必就会出现taotao v1.1taotao v1.2taotao v1.3等这些小版本号。在分支里面改完bug之后,要不要合并到主干呢?这肯定要合并到主干,因为你都知道有bug了,难道主干就不改了吗?难道你还能把这个bug带到taotao v2.0版本中吗?所以你得把分支里面修改的内容合并到主干,这样保证我们主干里面的内容是最新的。我们主干一旦把taotao v2.0这个版本开发完,并且测试完之后,再为该版本建一个分支,接着继续开发taotao v2.0这个版本。

由于我们现在还处于开发项目的过程中,所以我们应该把代码上传到trunk主干之上。

上传代码

要向SVN服务器上传代码,首先我们需要知道上传的地址,如何获取要上传的地址呢?很简单,方法是在trunk文件夹上右键,再在其子菜单中点击Copy URL to Clipboard,如下图所示。

在这里插入图片描述
粘贴我们刚才复制的URL到记事本上,你便可以看到https://liayun:8443/svn/taotao-javaee/trunk这样的一个URL,它是以https开头的,也就是安全模式,https默认的端口号是433,如果本地有进程占用了433端口请先关掉那个进程。

上传代码秉承先独立后依赖的原则。比方说,taotao-parent就是个独立的工程,它并没有依赖任何别的工程,因此我们便先上传它,然后taotao-common工程只依赖了taotao-parent,而其他工程都依赖于它,因此第二个便上传taotao-common工程,接着taotao-manager工程依赖于taotao-common,因此我们第三个便上传taotao-manager工程,这里值得说明的是,由于taotao-manager是个聚合工程,它聚合了下面四个子工程,因此我们只需要上传taotao-manager工程即可,不用再单独上传它下面的四个子工程。最后我们上传taotao-manager-web工程。

上传taotao-parent工程的代码

第一步,我们在taotao-parent工程上右键,然后在其子菜单中选择Team,接着再在其子菜单中点击Share Project...,如下图所示。

在这里插入图片描述
第二步,弹出如下窗口,并在窗口中选择SVN,然后点击Next按钮。
在这里插入图片描述
第三步,我们可以看到如下图所示的窗口,在该窗口中,我们选择使用默认的创建新的资源库位置,然后点击Next按钮。
在这里插入图片描述
第四步,我们会看到如下图所示的窗口,然后在URL一栏中输入我们上面复制过来的URL,然后点击Next按钮。
在这里插入图片描述
第五步,在弹出的如下窗口中,我们使用默认配置即可,然后点击Finish按钮。
在这里插入图片描述
第六步,此时,会弹出如下窗口,让我们输入SVN的用户名和密码,输入完之后,记得勾选保存密码前面的框框,然后点击OK按钮。
在这里插入图片描述
第七步,此时我们会看到如下图所示的窗口,点击Yes按钮即可。
在这里插入图片描述
第八步,此时,我们会进入同步视图,在同步视图中我们可以看到本地和服务端的差异。
在这里插入图片描述
第九步,我们在上传文件前需要先排除不需要上传的文件,比如.settings文件,我们就不能上传到服务端,因为每一个人的本地的配置都有一个.settings,并且都不一样,如果你传上去,别人一更新,那么你的.settings就会覆盖他本地,可能就造成这个工程坏了,各种各样奇怪的问题都会随之出现,所以最好不要把.settings传上去,也就是说这个时候.settings就需要被忽略。

那么如何忽略该文件呢?我们可以在其上右键,并在右键菜单中点击添加至svn:ignore(D),如下图所示。

在这里插入图片描述
然后,我们会看到如下图所示的窗口,点击OK按钮即可。
在这里插入图片描述
接着,我们就可以看到我们的taotao-parent工程已经没有.settings文件了。
在这里插入图片描述
以上这种方式只针对当前文件有效。其实,忽略某些文件还有另外一种方式,即配置忽略规则,这种方式更好一点。

那么如何来配置忽略规则呢?首先,点击Eclipse菜单栏中的Window菜单,在其下拉列表中选择Preferences,如下图所示。

在这里插入图片描述
然后,弹出如下窗口,并在该窗口的左侧找到Team,在Team下有一项Ignored Resources,我们点击它,在右侧可以看到当前默认添加的忽略的资源,还可以看到,其中并没有忽略.settings文件和.project文件,因此我们需要把这两个加到这里面来。
在这里插入图片描述
接着,我们点击Add Pattern...按钮,会弹出添加忽略格式的窗口,我们在输入框中输入.settings,然后点击OK按钮,如下图所示。
在这里插入图片描述
添加完.settings之后,我们再来添加.project,这时我们可以看到在忽略的资源当中已经有我们刚才输入的.settings和.project了,紧接着,依次点击ApplyOK按钮。
在这里插入图片描述
最后,忽略完.settings和.project这两个文件之后,我们可以看到工程下已经没有他俩了,而且这样做,以后其它项目在提交的时候也会自动忽略掉.settings和.project这俩文件。
在这里插入图片描述
第十步,我们开始把taotao-parent工程的代码上传到服务器。首先右键taotao-parent工程,然后在其子菜单中点击提交(C),如下图所示。
在这里插入图片描述
正式提交前需要写下提交的内容,如下图所示,然后点击OK按钮。
在这里插入图片描述
提交完taotao-parent工程的代码之后,我们来看下SVN服务器上是否已经有我们刚才上传的工程了,刷新一下trunk文件夹,发现它下面确实出现了taotao-parent工程,这已然说明taotao-parent工程的代码上传成功了!
在这里插入图片描述
接下来,我们来上传taotao-common工程的代码。

上传taotao-common工程的代码

第一步,我们在taotao-common工程上右键,然后在其子菜单中选择Team,接着再在其子菜单中点击Share Project...,如下图所示。

在这里插入图片描述
第二步,会弹出如下窗口,然后在窗口中选择SVN,接着点击Next按钮。
在这里插入图片描述
第三步,由于我们已经上传过taotao-parent工程的代码了,因此我们使用已有的资源库位置即可,然后点击Next按钮。
在这里插入图片描述
第四步,我们会在弹出的如下窗口中看到URL就是我们想要上传的地址,因此我们不用做任何修改,直接点击Next按钮即可。
在这里插入图片描述
第五步,上传前最好写上我们都进行了哪些操作,然后点击Finish按钮。
在这里插入图片描述
第六步,此时会让我们确认是否进入同步视图中,点击Yes按钮即可。
在这里插入图片描述
第七步,展开taotao-common工程,可以看到一个.classpath文件,该文件并不需要上传到服务端,因此我们需要忽略掉它。

那么如何忽略掉该文件呢?上面我已经讲过一遍了,这里我再不厌其烦讲一遍。首先,点击Eclipse菜单栏中的Window菜单,在其下拉列表中选择Preferences,如下图所示。

在这里插入图片描述
然后,会弹出如下窗口,并在该窗口的左侧找到Team,在Team下有一项Ignored Resources,我们点击它,在右侧可以看到当前默认添加的忽略的资源。
在这里插入图片描述
从以上窗口中,我们还可以看到,其中并没有忽略.classpath文件,因此还需要把它加到这里面来。这时,我们需要点击Add Pattern...按钮,会弹出一个添加忽略格式的窗口,并在输入框中输入.classpath,接着点击OK按钮,如下图所示。
在这里插入图片描述
添加完之后,我们可以看到忽略列表当中已经有我们刚才输入的.classpath了,最后点击OK按钮。
在这里插入图片描述
第八步,现在taotao-common工程剩下的目录都我们需要上传。首先选中所有目录然后右键,接着在其子菜单中点击提交(C)
在这里插入图片描述
提交前输入我们本次要提交的内容信息,然后点击OK按钮。
在这里插入图片描述
提交完taotao-common工程的代码之后,我们来看下SVN服务器上是否已经有我们刚才上传的工程了,刷新一下trunk文件夹,发现它下面确实出现了taotao-common工程,这已然说明taotao-common工程的代码上传成功了!
在这里插入图片描述
温馨提示:我们可以点击如下同步(刷新)图标来更新代码,然后点击Java EE图标返回工程目录。
在这里插入图片描述
接下来,我们来上传taotao-manager工程的代码。

上传taotao-manager工程的代码

前面我们已经上传了两个工程,同样的步骤重复写没有多大意义,所以我们说说如果我们的URL是trunk的上一级目录应该怎样上传。

第一步,我们在taotao-javaee仓库上右键,然后在其子菜单中点击Copy URL to Clipboard实现复制路径,如下图所示。

在这里插入图片描述
第二步,在taotao-manager工程上右键,然后在其子菜单中选择Team,接着再在其子菜单中点击Share Project...,如下图所示。
在这里插入图片描述
第三步,会弹出如下窗口,并在窗口中选择SVN,然后点击Next按钮。
在这里插入图片描述
第四步,我们可以看到如下图所示的窗口,在该窗口中,我们选择创建新的资源库位置,然后点击Next按钮。
在这里插入图片描述
第五步,我们会看到如下图所示的窗口,然后在URL一栏中粘贴上我们刚才复制的taotao-javaee仓库的URL地址,然后点击Next按钮。
在这里插入图片描述
第六步,在弹出的如下窗口中,我们可以看到默认的URL的路径是不正确的,因为少了一级trunk目录,因此我们需要更改下目录。
在这里插入图片描述
那么如何更改URL的路径呢?首先,我们选择使用指定的模块名,然后点击浏览按钮,接着在弹出的资源库浏览器对话框中选择trunk,最后点击OK按钮。
在这里插入图片描述
此时,你便会看到如下图所示的窗口,发现URL地址已经是我们想要的地址了,然后点击Next按钮。
在这里插入图片描述
第七步,上传前最好写上我们都进行了哪些操作,然后点击Finish按钮。
在这里插入图片描述
第八步,进入SVN服务器中,刷新一下trunk文件夹,可以看到一个空的taotao-mamager工程,如下图所示。
在这里插入图片描述
进入taotao-manager目录中,发现里面什么都没有,也就是说,此时只是上传了一个空的工程而已,工程里面的内容都还没有提交。
在这里插入图片描述
第九步,由于我们的taotao-manager工程是一个聚合工程,因此它下面的目录特别的多,如下图所示(目录太多,截图并未截完整),其中target目录是我们不需要上传的,因此我们得把target目录给忽略掉。
在这里插入图片描述
我们在taotao-mamager-dao/target目录上右键,然后想在其子菜单中点击添加至svn:ignore(D),发现该功能是灰色的,也就是说这时该功能是不能用的,为什么会这样呢?
在这里插入图片描述
我们刚才也看到了,此时在SVN服务器上只有taotao-manager空工程,它下面的模块都还未提交,我们的目的是想要忽略掉taotao-manager-dao/target目录,但是服务器上连taotao-manager-dao目录都没有,也就是说它并不知道其下一级目录,所以可想而知taotao-manager-dao/target目录是不能被忽略掉的(我们能忽略的目录只能是taotao-manager的直接子目录,例如taotao-mamager-dao、taotao-manager-pojo等,而不能是其孙子目录,想忽略掉孙子目录的话,我们至少需要先上传子目录到服务器上)。

接下来,我们来将taotao-manager-dao目录下的pom.xml文件上传到SVN服务器上。首先右键taotao-manager-dao目录下的pom.xml文件,然后在其子菜单中点击提交(C),如下图所示。

在这里插入图片描述
接着,写下提交的内容,如下图所示,然后点击OK按钮。
在这里插入图片描述
提交完taotao-manager-dao目录下的pom.xml文件之后,我们便可以忽略target目录了,如下图所示。
在这里插入图片描述
最后,在弹出的窗口中点击OK按钮。
在这里插入图片描述
上面只是一种忽略的办法,更好的办法还是在Eclipse中进行配置,我们还像上面那样添加Pattern,输入target然后点击OK按钮。
在这里插入图片描述
添加完之后,我们可以看到忽略列表当中已经有我们刚才输入的target了,最后点击OK按钮。
在这里插入图片描述
如此一来,我们就会发现整个工程清净多了,如下图所示。
在这里插入图片描述
接下来,我们就要把taotao-manager该聚合工程上传到SVN服务器上去了。怎么上传,不用我说了吧!上传完taotao-manager聚合工程后,我们到SVN服务端查看,发现taotao-manager聚合工程已经成功上传了。
在这里插入图片描述
第十步,由于taotao-manager-dao、taotao-manager-interface、taotao-manager-pojo、taotao-manager-service这四个子工程本身就属于taotao-mamager聚合工程,而且我们刚才已经把taotao-manager聚合工程提交了,因此我们不必再上传这四个模块了。但是我们也应注意到这四个模块的图标与已经上传过的工程的图标是不一样的(也就是说当前这四个子工程并未被maven管理),如下图所示。
在这里插入图片描述
要解决这个问题,我们需要先逻辑删除这四个模块,如下图所示,我们选中这四个子工程,然后在右键菜单中点击Delete
在这里插入图片描述
然后,会弹出如下窗口,记住千万不要勾选Delete project contents on disk(canot be undone)前面的复选框。 因为这样做会物理删除掉这四个模块,而我们只是要逻辑删除而已,因此我们直接点击OK按钮即可。
在这里插入图片描述
接着,逻辑删除完这四个模块之后,我们再把这四个模块加载进来。在taotao-manager工程上右键,并在其子菜单中点击Import...,如下图所示。
在这里插入图片描述
紧接着,在弹出的窗口中找到Maven这一项,并将其展开,再选中Existing Maven Projects,点击Next按钮。
在这里插入图片描述
此时,可以看到我们刚才逻辑删除的那四个模块,最后点击Finish按钮。
在这里插入图片描述
至此,想必你能看到如下图所示的界面了,这就已然说明我们的四个模块已经被maven管理了。
在这里插入图片描述
接下来,我们就来上传taotao-manager-web工程的代码。

上传taotao-manager-web工程的代码

这里我们来上传taotao-manager-web工程的代码,由于操作步骤与上传taotao-parent、taotao-common等工程完全一样,所以这里就不再啰嗦了。

转载地址:https://liayun.blog.csdn.net/article/details/106966731 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:淘淘商城第9讲——从SVN服务器下载代码
下一篇:淘淘商城第7讲——你逃也逃不过的SVN版本控制工具

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 03时20分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章