您的位置:首页 > 编程语言 > Java开发

Eclipse用svn管理Android项目问题

2015-01-05 09:10 267 查看
用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,项目编译就会出问题。

我就是犯了这个错误,用eclipse安装了svn插件,然后一股脑把android项目都传上去,然后别人下载后就无法编译过去,怎么弄都不对。

经过各种谷歌后,晓得了Android项目有以下不能上传:

bin目录
gen目录
.classpath文件
.project文件

要想在eclipse里屏蔽它们,需要这样操作:



Click on Window -> Preferences
Select Team -> Ignored Resources
Click on Add Pattern and enter "bin"
Click on Add Pattern and enter "target"
Click on Add Pattern and enter "m2-target"
Click on Add Pattern and enter "gen"

Click on Add Pattern and enter ".classpath"

Click on Add Pattern and enter ".project"

Click on Apply and then OK

这样在以后提交时,这些都会自动屏蔽掉,不会更新上去。

还有一个问题是每次编译时,eclipse都会将src目录下的东西到考到bin里,这样.svn也会跟着进去,这样即使bin被屏蔽了,但还是在svn时有问题,解决方法:

菜 单 - Project - Properties - Java Build Path - Source - xxx/src - Excluded,双击或点右边的编辑,在Exclusion patterns中加入"**/.svn/**",让Eclipse忽略.svn目录即可。

今天折腾了好久还晓得了svn删除某个文件怎么做:

先在本地

#svn del 要删除的文件或文件夹

注意这个是离线操作,此时服务器的这些还在,之后svn ci一下,就可以删掉服务器上的了。

使用Tortoise SVN版本控制Eclipse工作区的Android项目需要注意的地方:

1 不需要版本控制的目录:bin, gen

Eclipse中新建的Android项目,包含两个不需要也不能版本控制的目录:bin,gen。其中bin就是编译的二进制文件的存放路径,gen是Android需要的资源文件的源文件存放的目录(就是R.java存放的地方,具体是干什么的,可以参照Android的SDK,反正就是一个文件定义一个类,类中的变量对应了程序中的资源ID)。这两个文件夹每次build的时候都会清空,而Tortoise SVN进行版本控制就是靠在文件夹中存储一个隐藏的.svn文件夹来做的,这样只要一build,版本控制的信息就丢了,所以,这两个目录不可以版本控制。当然了,都是生成的东西,也不需要版本控制。

2 修改Build Path的设置

Eclipse默认会将src目录中的内容copy到bin文件夹中。如果按照第一步,没有对bin进行版本控制,但是对src等其他必要的目录进行了版本控制的话,就会莫名的发现bin的目录中多了一个.svn的文件夹,但是不像其他的同名文件夹,这个不是隐藏的。因为这个就是从src目录中copy过来的。

这会产生两个问题,一个是这个.svn文件夹,通过Tortoise SVN的命令,可以在bin中修改src的版本控制(因为是复制过来的么,简单理解可以认为是拷贝了另一个东西的指针过来),当然这个通过小心操作可以避免误操作。但是,另一个问题,就是Eclipse在编译的时候会去尝试处理.svn文件夹中的内容,这个就会出现许多莫名的错误,导致无法成功编译。

所以我们要避免从bin中copy src目录中的.svn文件夹,这个要在项目的Build Path设置中修改,在里面的Source标签中,找到src对应的Excluded进行编辑,添加**/.svn/**,即可忽略.svn文件夹。从而解决上面的问题。但是这个不能进行全局设置,对每个新项目都这么做一遍,也挺不人性化的。

如果不幸因为.svn中的内容产生了错误却不能通过上面提到的方法解决,可以在Eclipse中删掉项目(别从硬盘上删掉……),然后选择File->Import,将硬盘上的项目重新导入,烦人的错误就消失了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: