学习淘淘商城第六课(向SVN服务器上传和下载代码)
2018-02-26 21:17
489 查看
上节课我们一起学习了怎样安装SVN服务器并且新建了一个空的仓库"taotao-javaee",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/5a115fd0b94bcd729b1ed75631cd5a7f)
下面我们一起学习下这三个文件夹分别代表什么意思。 "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"文件夹表示标签,主要是记录一些关键时间点,比如某个版本发布的时间,某个大的bug修改的版本等,我们在tags做下标记,这样方便我们根据标签找回我们想要的以前某个版本的代码。 "trunk"文件夹代表主干,这也是我们平时开发所在的目录,主干的代码始终是最新的,版本也是不稳定的,需要经过多轮测试才能验收通过,这时再新建分支,然后接着开发新的版本。 由于我们现在还处于开发之中,所以我们把代码上传到trunk主干之上。第一部分:上传代码 1.要上传代码,首先我们需要知道上传的地址,方法是在"trunk"文件夹上右键,在菜单中点击"Copy URL to Clipboard",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/6fc838e3c2921887060679698a225e03)
粘贴我们刚才复制的URL,可以看到https://LAPTOP-LSOBL18P/svn/taotao-javaee/trunk这样一个URL,它是以https开头的,也就是安全模式,https默认的端口号是433,如果本地有进程占用了433端口请先关掉那个进程。 2.打开Eclipse,我们会发现,我们的maven工程有的会报错,这时我们只需要更新下maven依赖就行了,方法是:选中报错的maven 工程,右键,在菜单中把鼠标放到"Maven"上,在其子菜单中点击"Update Project...",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/41bd85a3caa7aaf740932f3fe7618858)
会弹出如下所示的对话框,默认勾选的便是我们选择的四个工程,我们直接点击"OK"即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/fad741df363f9f53b384d4c5fe30a1ea)
maven更新完之后,发现工程不报错了,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/10504d659ae14c858a1a71130e1f5e47)
3.上传代码,上传代码秉承先独立后依赖的原则,比如说,taotao-parent就是个独立的工程,它没有依赖任何别的工程,因此我们便先上传它,然后taotao-common工程只依赖了taotao-parent,而其他工程都依赖于它,因此第二个便上传taotao-common,然后taotao-manager依赖于taotao-common,它又被taotao-manager-web工程所依赖,因此我们第三个便上传taotao-manager工程,这里值得说明的是,由于taotao-manager是个聚合工程,它聚合了下面四个子工程,因此我们只需要上传taotao-manager即可,不用再单独上传它的四个子工程。最后我们上传taotao-manager-web工程。 下面开始正式上传操作,我们在taotao-parent工程上右键------->Team-------->Share Project...如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/57f0381e1f64193e6fa1cb4440055d1a)
默认情况下,大家看到的界面如下图所示。发现没有SVN可供我们选择。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/88b4b387f59bde1328364bceec653941)
为了解决这个问题,大家可以参考:http://blog.csdn.net/u012453843/article/details/64624383这篇博客进行处理。 解决完之后,我们看到的界面如下图所示。我们选择"SVN",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a755703dd8460a317b8e99c09e8b35a5)
可以看到如下图所示界面,我们使用默认的"创建新的资源库位置",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/e2924794d20a17a9eec4830f9d481e5b)
我们会看到如下图所示界面,在URL一栏,我们输入我们第一步复制的URL,然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/08f9bfbbec65c3f03df06d3cb41d094a)
我们使用默认配置,直接点击"Finish"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/545c027f8479aefe880699aa4c94bd76)
下面会让我们输入SVN的用户名和密码,输入完之后,点击"OK"
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c94ef2715ad7d449ad6c0e9f664afbcd)
下面会看到如下图所示的确认对话框,我们点击"Yes"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/cfc08cf26444f01336ebc3884a51a152)
下面我们会进入同步视图,我们在上传文件前需要先排除不需要上传的文件,比如.settings文件,我们就不能上传到服务端,否则会出现莫名其妙的错误,我们可以在其上右键,在菜单中点击"添加至svn:ignore(D)",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/d685c8bdc262c7aac6ea5d7b1dec4de9)
下面我们会看到如下图所示的弹出框,我们点击"OK"即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/74049791fed950682f129d2c6c623782)
忽略后我们可以看到我们的taotao-parent工程已经没有.settings文件了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/ea6faa21b5979bc04c71c3472da1bbe8)
还有另外一种更好的去掉不想要上传的文件的方法,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/f8a00917e1f469b48c7e9b17c683fc77)
在Team下有一项"Ignored Resources",我们点击它,在右侧可以看到当前默认添加的忽略的资源,可以看到,并没有忽略.settings文件和.project文件,因此我们需要把这两个加到这里面中来。我们点击"Add Pattern..."
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/77d367ead3a5a1111eeebd218e02b108)
添加忽略格式的对话框如下图所示,我们在输入框中输入".settings",然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a3931f6eb18166cd2c3e32a2534e8c37)
添加完.settings和.project之后,我们可以看到在忽略的资源当中已经有我们刚才输入的.settings和.project了。这时我们点击"Apply"和"OK"
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/5cee0c6ed835c717e08d14d2d5236d86)
忽略完之后,我们可以看到工程下已经没有.settings和.project文件了。而且以后其它项目在提交的时候也会自动忽略掉.settings和.project文件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/4efcb391974efc945dec2542c25baf80)
下面我们开始把代码上传到服务器,我们选中所有目录和文件,右键,点击"提交(C)"。如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/5b501fc0b5839057c720172b79107471)
正式提交前需要写下提交的内容,如下图所示,然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/1aef778d864bfce8497af6c70d55914d)
提交完taotao-parent工程的代码之后,我们来看下SVN服务器上是否已经有我们刚才上传的工程,我们刷新trunk文件夹,发现它下面出现了"taotao-parent"工程了!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/7b82d39c9ff5c47e195a38d45a010628)
下面我们来上传taotao-common工程,我们在taotao-common工程上右键------>Team------->Share Project...,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/2406f77841a7ca53fb82855a391587c3)
选择"SVN",然后点击"Next",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c3f4a36eee8aa773fe34b96c8949e5df)
由于我们已经添加过一个工程了,taotao-common与taotao-parent同级,因此我们使用已有的资源库位置即可,点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/ae5f1e53f9fd79d83d92ea99db2c3e3a)
可以看到URL就是我们想要上传的地址,因此我们不用做修改,直接点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a8cda54de8a8e724e83eea73586ee393)
提交前最好写上我们都进行了什么操作,然后点击"Finish"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/ca72cba5792c77434afe8825501e8f2d)
下面会让我们确认是否进入同步界面,我们点击"Yes",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/36840e0658b3b120f167c0689b4551fe)
taotao-common工程的.classpath是我们所不需要的,因此我们需要过滤掉它,我们在Window------->Preferences-------->Team-------->Ignored Resources-------->在右侧点击"Add Pattern...",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/1626e7c2b04e9c3b13e2ee2bea643230)
在弹出的对话框中输入.classpath,然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/4a3aff4675d688047cae134c22a59b32)
添加完之后,我们可以看到忽略列表当中已经有我们刚才输入的.classpath了,然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/7d50197f31f8e8697afb08476d8f9891)
taotao-common工程现在剩下的目录都是我们需要上传的,我们选中所有目录然后右键,在菜单中点击"提交"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/8b14f6b3a3125edb3f3b432e653d1894)
提交前我们输入我们本次要提交的内容信息,然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/bb42ba9fb59b2b76173ad84abf5e0247)
提交完后,我们可以到SVN服务器上查看taotao-common工程是否成功上传,可以看到,已经成功上传了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/bd64012d7057a43b532b0918d45df067)
我们可以点击刷新图标更新代码,可以点击"Java EE"返回工程目录。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/793a4a2f74d328a1c989216fd33fa6e6)
下面我们开始上传taotao-manager工程。 前面我们已经上传了两个工程,同样的步骤重复写没有多大意义,所以我们说说如果我们的URL是trunk的上一级目录应该怎样上传。我们在taotao-javaee仓库上右键------>点击Copy URL to Clipboard实现复制路径。如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/20eb3f010fd24b18cc430a23e99a2597)
我们在taotao-manager上右键------>Team------>Share Project...------>选择SVN然后点击"Next"(图例和前两个工程完全一样),我们会看到如下图所示界面,我们选择"创建新的资源库位置",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/87df146ce6a51b7b586854bc62c37c7e)
我们在URL一栏粘贴上我们刚才复制的taotao-javaee仓库的URL地址,如下图所示,然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/1004f90957ed2e5fad697b3be973248a)
我们可以看到默认的URL的路径是不正确的,因为少了一级trunk目录,因此我们需要更改下目录。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/200639589d0fd895aeddd708423f5da2)
我们选择"使用指定的模块名",点击"浏览",在弹出的资源库浏览器对话框中点击"trunk",然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/48cd85f3699d340872d787a10a563a3c)
点击上图的OK按钮之后,会看到如下图所示信息,发现URL地址已经是我们想要的地址了,然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/7a17de92af13381c6da550ed64131f04)
写上注释信息,点击"Finish"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a5c3e0d6f0bb5612cc063926f48de459)
点击上图的"Finish"之后,我们可以在SVN服务器上看到一个空的taotao-mamager工程
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/38c0fd5e74129000d402c4762799c976)
进入taotao-manager目录,发现里面什么都没有,也就是说,此时只是上传了一个空的工程而已,工程里面的内容都还没有提交。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/f7e9e4ea294b0bd2fd8500236cff206e)
由于我们的taotao-manager工程是个聚合工程,因此它下面的目录特别多,如下图所示(目录太多,截图未截完整),其中target目录是我们不需要上传的,因此我们把target目录给忽略掉。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/232aac5d3ea8693d591ea70c200d2d02)
我们在taotao-mamager-dao/target上右键想把它添加至svn:ignore,发现该功能是灰色的,也就是这时是不能用的,为什么会这样呢?我们刚才也看到了,此时在SVN服务器上只有taotao-manager空工程,它下面的模块都还未提交过,我们要忽略taotao-manager-dao/target,但是服务器上连taotao-manager-dao目录都没有,所以它不知道其下一级目录,因此这时是不能忽略的(我们能忽略的目录只能是taotao-manager的直接子目录,比如taotao-mamager-dao、taotao-manager-pojo等,而不能是孙子目录)。想忽略孙子目录的话,我们便至少需要先上传子目录到服务器。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/2f9378048cabd3838d9184785a3f58e6)
我们把taotao-manager-dao目录下的pom.xml文件上传到SVN服务器,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/0f3c76c6f426d8322f04bb471943dc5f)
填上注释,然后点击"OK"
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/176cd8f9b1448891a2a2b46026ab8e21)
提交完taotao-manager-dao下的pom.xml后,我们便可以忽略target目录了,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/4949b8174fe20488aade7ba27d4d8daf)
在弹出的对话框中点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a28b2dc83fc39ee9e99f808a5089266d)
上面只是一种忽略办法,更好的办法还是配置,我们还像上面那样添加Pattern,输入target然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/8ba78e781796619f6b141d5cb360f7e6)
添加完后,在忽略列表中有了target,然后我们点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c715f2bc4533e9f81f38fa27f8da0d99)
然后一下子我们会发现整个工程清净多了,如下图所示,我们把该聚合工程上传。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/13b2f62993d0657848faa87306c9e14f)
上传完taotao-manager工程后,我们到SVN服务端查看,发现taotao-manager聚合工程已经成功上传了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/98fbb2f9d183b4b6d8b6366ac61aec52)
由于taotao-manager-dao、taotao-manager-interface、taotao-manager-pojo、taotao-manager-service四个子工程本身就属于taotao-mamager聚合工程,我们刚才已经把taotao-manager聚合工程提交了,因此我们不必再上传这四个模块了。但是我们也注意到这四个模块的图标与已经上传过的工程的图标不一样(也就是说当前未被maven管理)。如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a24aa81d6181a4dbd7d07749b4d4056f)
要解决这个问题,我们需要先逻辑删除这四个模块,如下图所示,我们选中这四个子工程,然后在右键菜单中点击"Delete"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/db240c0878aad2259a8343ce2d5a3163)
在弹出的对话框中,千万不要勾选"Delete project contents on disk(canot be undone)"前面的复选框,因为这样会物理删除掉这四个模块,我们只是要逻辑删除而已,因此我们直接点击"OK"即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/fbda432e0e01402d070dbb0200eca8b3)
逻辑删除完之后,我们再把这四个模块加载进来,我们在taotao-manager工程上右键,在菜单中点击"Import...",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/5007f7c1aa2419f8ee5741471281ae38)
在弹出的对话框中展开"Maven",选中"Existing Maven Projects",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/632906e137b7d99c1aa9466871b435a7)
可以看到我们刚才逻辑删除的四个模块,我们点击"Finish"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a545f9ce4d575de5cc399c0162f8a44f)
我们会看到下图所示界面,说明我们的四个模块已经被maven管理了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/441696544dcb336a7711271b86471cf6)
最后我们上传taotao-manager-web工程,由于操作步骤与上传taotao-parent、taotao-common完全一样,就不再啰嗦了。4.下载工程 既然我们已经把代码都上传到SVN服务器上了,那么我们此时便可以把eclipse上的工程给真正删掉,如下图所示,选中所有工程,右键点击"Delete"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/007a985d4b200ce559c6d30545940b94)
我们勾选上"Delete project contents on disk(canot be undone)"前面的复选框,点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/d0a7ec1f783a190b83725941981bfb85)
删除完之后,一片空白,如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c0004b9163dd2b222050f4b44638d791)
值得注意的是,我们不能在SVN资源库研究视图删除代码,SVN资源库研究视图打开方式是:Window---->Perspective----->Open Perspective------>Other...
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/de85489886871df225e647406f6d7f45)
在弹出的对话框中点击"SVN资源库研究",然后点击"OK"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/36fa10e7ef48d3b74cc9de2d9c088041)
可以看到SVN资源库研究视图如下所示,我们千万不要在这里删除代码,因为这里删除了,SVN服务器上就没有被删除的代码了!!!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/17054afcbe87ab0b5fe20a6127a64792)
我们下载代码步骤如下,我们在空白处右键,在菜单中把鼠标放到"Import"上,在其子菜单中点击"Import..."。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/604ecc16d9110e2128607ccc14db88e3)
我们会看到下图所示界面,我们展开"SVN",点击"从SVN检出项目",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/4562e77965616acd773b94cfba929f16)
我们选择下面那个资源库URL,然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c2e2f1d6d3c8ff9c341d7ed04fc31293)
选中四个模块,点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a8b98d773dfa0d3cadb7425811fe07d8)
多个工程就一个选项(做为工作空间中的多个项目检出),如果是单个工程的话,会有两个选项,我们依然选择这个选项就可以了,点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/352bcc19d7d6d74409c3be8b28fa1a2e)
这一步不用做配置,直接点击"Finish",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/806195af553ef3caa646a82826ca892d)
我们刚导入的工程目录如下,我们发现这些工程目前根本就不说maven工程(没有maven目录,也没有m图标),因此我们需要将工程转为maven工程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/10fd3d2a6a5cd29d5ce529f0cf4ce615)
转maven工程最好按照依赖的先后顺序来转,比如,taotao-parent不依赖任何工程,因此先转它比较合适。操作步骤是,在taotao-parent工程上右键,在右键菜单中把鼠标放到Configure上,在其子菜单中点击"Convert to Maven Project",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/8806230753833e8c5857eb039cc08552)
转换完之后,我们便可以看到有"m"图标了,接着我们再将taotao-common、taotao-mamager、taotao-manager-web工程都转换为maven工程,转换完之后如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c15f9869ae06028bd9cb2ccc6ddb9fc1)
我们发现还没有导入taotao-mamager聚合工程的子工程,我们现在把它们也导入进来,方法是在taotao-manager工程上右键,在菜单中点击"Import..."。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/d337c5c4a259c43bfbec099751289162)
在下图对话框中点击"Existing Maven Projects",然后点击"Next"。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/be3a0ca03d5e67cf2ba904469cda9da9)
直接点击"Finish",如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/c4ddb332d14e5c8854385b2a1a7a62b4)
导入完毕之后,可以看到这四个子工程了。如下图所示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/b2d35437180d4bb924d79828b45ef258)
至此,SVN上传和下载便学完了。
下面我们一起学习下这三个文件夹分别代表什么意思。 "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"文件夹表示标签,主要是记录一些关键时间点,比如某个版本发布的时间,某个大的bug修改的版本等,我们在tags做下标记,这样方便我们根据标签找回我们想要的以前某个版本的代码。 "trunk"文件夹代表主干,这也是我们平时开发所在的目录,主干的代码始终是最新的,版本也是不稳定的,需要经过多轮测试才能验收通过,这时再新建分支,然后接着开发新的版本。 由于我们现在还处于开发之中,所以我们把代码上传到trunk主干之上。第一部分:上传代码 1.要上传代码,首先我们需要知道上传的地址,方法是在"trunk"文件夹上右键,在菜单中点击"Copy URL to Clipboard",如下图所示。
粘贴我们刚才复制的URL,可以看到https://LAPTOP-LSOBL18P/svn/taotao-javaee/trunk这样一个URL,它是以https开头的,也就是安全模式,https默认的端口号是433,如果本地有进程占用了433端口请先关掉那个进程。 2.打开Eclipse,我们会发现,我们的maven工程有的会报错,这时我们只需要更新下maven依赖就行了,方法是:选中报错的maven 工程,右键,在菜单中把鼠标放到"Maven"上,在其子菜单中点击"Update Project...",如下图所示。
会弹出如下所示的对话框,默认勾选的便是我们选择的四个工程,我们直接点击"OK"即可。
maven更新完之后,发现工程不报错了,如下图所示。
3.上传代码,上传代码秉承先独立后依赖的原则,比如说,taotao-parent就是个独立的工程,它没有依赖任何别的工程,因此我们便先上传它,然后taotao-common工程只依赖了taotao-parent,而其他工程都依赖于它,因此第二个便上传taotao-common,然后taotao-manager依赖于taotao-common,它又被taotao-manager-web工程所依赖,因此我们第三个便上传taotao-manager工程,这里值得说明的是,由于taotao-manager是个聚合工程,它聚合了下面四个子工程,因此我们只需要上传taotao-manager即可,不用再单独上传它的四个子工程。最后我们上传taotao-manager-web工程。 下面开始正式上传操作,我们在taotao-parent工程上右键------->Team-------->Share Project...如下图所示。
默认情况下,大家看到的界面如下图所示。发现没有SVN可供我们选择。
为了解决这个问题,大家可以参考:http://blog.csdn.net/u012453843/article/details/64624383这篇博客进行处理。 解决完之后,我们看到的界面如下图所示。我们选择"SVN",然后点击"Next"。
可以看到如下图所示界面,我们使用默认的"创建新的资源库位置",然后点击"Next"。
我们会看到如下图所示界面,在URL一栏,我们输入我们第一步复制的URL,然后点击"Next"。
我们使用默认配置,直接点击"Finish"。
下面会让我们输入SVN的用户名和密码,输入完之后,点击"OK"
下面会看到如下图所示的确认对话框,我们点击"Yes"。
下面我们会进入同步视图,我们在上传文件前需要先排除不需要上传的文件,比如.settings文件,我们就不能上传到服务端,否则会出现莫名其妙的错误,我们可以在其上右键,在菜单中点击"添加至svn:ignore(D)",如下图所示。
下面我们会看到如下图所示的弹出框,我们点击"OK"即可。
忽略后我们可以看到我们的taotao-parent工程已经没有.settings文件了。
还有另外一种更好的去掉不想要上传的文件的方法,如下图所示。
在Team下有一项"Ignored Resources",我们点击它,在右侧可以看到当前默认添加的忽略的资源,可以看到,并没有忽略.settings文件和.project文件,因此我们需要把这两个加到这里面中来。我们点击"Add Pattern..."
添加忽略格式的对话框如下图所示,我们在输入框中输入".settings",然后点击"OK"。
添加完.settings和.project之后,我们可以看到在忽略的资源当中已经有我们刚才输入的.settings和.project了。这时我们点击"Apply"和"OK"
忽略完之后,我们可以看到工程下已经没有.settings和.project文件了。而且以后其它项目在提交的时候也会自动忽略掉.settings和.project文件。
下面我们开始把代码上传到服务器,我们选中所有目录和文件,右键,点击"提交(C)"。如下图所示。
正式提交前需要写下提交的内容,如下图所示,然后点击"OK"。
提交完taotao-parent工程的代码之后,我们来看下SVN服务器上是否已经有我们刚才上传的工程,我们刷新trunk文件夹,发现它下面出现了"taotao-parent"工程了!
下面我们来上传taotao-common工程,我们在taotao-common工程上右键------>Team------->Share Project...,如下图所示。
选择"SVN",然后点击"Next",如下图所示。
由于我们已经添加过一个工程了,taotao-common与taotao-parent同级,因此我们使用已有的资源库位置即可,点击"Next"。
可以看到URL就是我们想要上传的地址,因此我们不用做修改,直接点击"Next"。
提交前最好写上我们都进行了什么操作,然后点击"Finish"。
下面会让我们确认是否进入同步界面,我们点击"Yes",如下图所示。
taotao-common工程的.classpath是我们所不需要的,因此我们需要过滤掉它,我们在Window------->Preferences-------->Team-------->Ignored Resources-------->在右侧点击"Add Pattern...",如下图所示。
在弹出的对话框中输入.classpath,然后点击"OK"。
添加完之后,我们可以看到忽略列表当中已经有我们刚才输入的.classpath了,然后点击"OK"。
taotao-common工程现在剩下的目录都是我们需要上传的,我们选中所有目录然后右键,在菜单中点击"提交"。
提交前我们输入我们本次要提交的内容信息,然后点击"OK"。
提交完后,我们可以到SVN服务器上查看taotao-common工程是否成功上传,可以看到,已经成功上传了。
我们可以点击刷新图标更新代码,可以点击"Java EE"返回工程目录。
下面我们开始上传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目录,因此我们需要更改下目录。
我们选择"使用指定的模块名",点击"浏览",在弹出的资源库浏览器对话框中点击"trunk",然后点击"OK"。
点击上图的OK按钮之后,会看到如下图所示信息,发现URL地址已经是我们想要的地址了,然后点击"Next"。
写上注释信息,点击"Finish"。
点击上图的"Finish"之后,我们可以在SVN服务器上看到一个空的taotao-mamager工程
进入taotao-manager目录,发现里面什么都没有,也就是说,此时只是上传了一个空的工程而已,工程里面的内容都还没有提交。
由于我们的taotao-manager工程是个聚合工程,因此它下面的目录特别多,如下图所示(目录太多,截图未截完整),其中target目录是我们不需要上传的,因此我们把target目录给忽略掉。
我们在taotao-mamager-dao/target上右键想把它添加至svn:ignore,发现该功能是灰色的,也就是这时是不能用的,为什么会这样呢?我们刚才也看到了,此时在SVN服务器上只有taotao-manager空工程,它下面的模块都还未提交过,我们要忽略taotao-manager-dao/target,但是服务器上连taotao-manager-dao目录都没有,所以它不知道其下一级目录,因此这时是不能忽略的(我们能忽略的目录只能是taotao-manager的直接子目录,比如taotao-mamager-dao、taotao-manager-pojo等,而不能是孙子目录)。想忽略孙子目录的话,我们便至少需要先上传子目录到服务器。
我们把taotao-manager-dao目录下的pom.xml文件上传到SVN服务器,如下图所示。
填上注释,然后点击"OK"
提交完taotao-manager-dao下的pom.xml后,我们便可以忽略target目录了,如下图所示。
在弹出的对话框中点击"OK"。
上面只是一种忽略办法,更好的办法还是配置,我们还像上面那样添加Pattern,输入target然后点击"OK"。
添加完后,在忽略列表中有了target,然后我们点击"OK"。
然后一下子我们会发现整个工程清净多了,如下图所示,我们把该聚合工程上传。
上传完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-parent、taotao-common完全一样,就不再啰嗦了。4.下载工程 既然我们已经把代码都上传到SVN服务器上了,那么我们此时便可以把eclipse上的工程给真正删掉,如下图所示,选中所有工程,右键点击"Delete"。
我们勾选上"Delete project contents on disk(canot be undone)"前面的复选框,点击"OK"。
删除完之后,一片空白,如下图所示。
值得注意的是,我们不能在SVN资源库研究视图删除代码,SVN资源库研究视图打开方式是:Window---->Perspective----->Open Perspective------>Other...
在弹出的对话框中点击"SVN资源库研究",然后点击"OK"。
可以看到SVN资源库研究视图如下所示,我们千万不要在这里删除代码,因为这里删除了,SVN服务器上就没有被删除的代码了!!!
我们下载代码步骤如下,我们在空白处右键,在菜单中把鼠标放到"Import"上,在其子菜单中点击"Import..."。
我们会看到下图所示界面,我们展开"SVN",点击"从SVN检出项目",然后点击"Next"。
我们选择下面那个资源库URL,然后点击"Next"。
选中四个模块,点击"Next"。
多个工程就一个选项(做为工作空间中的多个项目检出),如果是单个工程的话,会有两个选项,我们依然选择这个选项就可以了,点击"Next"。
这一步不用做配置,直接点击"Finish",如下图所示。
我们刚导入的工程目录如下,我们发现这些工程目前根本就不说maven工程(没有maven目录,也没有m图标),因此我们需要将工程转为maven工程。
转maven工程最好按照依赖的先后顺序来转,比如,taotao-parent不依赖任何工程,因此先转它比较合适。操作步骤是,在taotao-parent工程上右键,在右键菜单中把鼠标放到Configure上,在其子菜单中点击"Convert to Maven Project",如下图所示。
转换完之后,我们便可以看到有"m"图标了,接着我们再将taotao-common、taotao-mamager、taotao-manager-web工程都转换为maven工程,转换完之后如下图所示。
我们发现还没有导入taotao-mamager聚合工程的子工程,我们现在把它们也导入进来,方法是在taotao-manager工程上右键,在菜单中点击"Import..."。
在下图对话框中点击"Existing Maven Projects",然后点击"Next"。
直接点击"Finish",如下图所示。
导入完毕之后,可以看到这四个子工程了。如下图所示。
至此,SVN上传和下载便学完了。
相关文章推荐
- 学习淘淘商城第六课(向SVN服务器上传和下载代码)
- 实现从svn服务器下载代码,编译成class文件,打成war包后再上传到svn的build文件
- 阿里云服务器上传 下载代码方法汇总
- 总结代码开发完成–> 同步、更新、上传SVN –>服务器上部署整个流程
- 使用struts2实现上传下载功能(附代码)。类似于ftp服务器。不止局限于本机的上传下载,其他机器也可使用此功能,服务器似的功能
- SVN 钩子 自动上传代码到服务器
- J2SSH Maverick 一段连接sftp服务器,上传,下载的代码:
- java上传下载ftp服务器的代码!!
- 终端中管理SVN服务器 上传、下载、更新【原创】
- java上传下载ftp服务器的代码!!
- AndroidStudio关联svn并上传代码到svn服务器上
- Java代码实现FTP服务器上传文件与下载文件
- svn服务器代码上传检查配置
- 淘淘商城学习笔记 之 上传图片到远程服务器,图片的回显出现的bug
- git学习 ---从服务器上下载代码
- 学习 tornado 服务器 - 配合fastdfs上传下载
- Spring学习第三天——Spring MVC,使用注解方式,intellij的代码说明,ajax,文件的上传下载
- C#学习笔记之从FTP服务器上传和下载数据(二)
- as中配置svn,上传代码到svn服务器
- [置顶] 【SVN】Eclipse中使用Svn上传和下载代码