首先介绍一下,我们公司这里没有实现自动化发布,每次打补丁或者新开发功能,都需要人工手动上传代码,内部开发了一个代码上传文件工具,但是需要提供标准的文件列表。
因为svn提交的时候提供的有代码列表,我咨询其他同事,他们一般都是通过全部复制此代码列表,然后再修改文件格式,使之符合上传文件列表的格式。
其实可以通过svn的插件取到本次开发的代码列表,然后将这些文件转换成 可上传的代码列表样式。这样可以省去整理代码列表的时间,提高工作效率。
最理想的的是在提交svn的时候,增加一个配置项,将代码列表按照可上传格式整理完毕,输出到桌面上。但是实现难度较大,需要和subclipse兼容;
既然修改subclipse的难度太大,那么是否svn提供的有接口,能够获取到一个工程或者一个文件夹下的文件列表呢?这样的话,自己开发一个eclipse插件,对着工程或者文件夹点击右键,直接取到所有有修改的文件列表,规范成标准格式,输出到页面上,岂不简单?
有了想法,兴趣就来了。大致梳理了一下,需要以下几步:
(1)开发一个eclipse右键插件
(2)当点击此按钮的时候,能够利用svn的接口,比对某个文件的状态,看此文件属不属于新增或者修改,如果属于则存起来
(3)汇总所有取到的文件,修改文件格式。生成文件到桌面上。
在网上查找了很多资料,都没人提供java版本的解决方案,都是在转载怎么利用show log来获取两个版本之间的差别,可能每个人的需求不一样吧,没人有我们这种相对比较原始的开发模式和上传模式。。。。
各种艰辛,各种查找资料。。。
在百度文库上找到了一个叫做svnkit的组件,貌似可以实现svn的接口。
介绍:SVNKit是一个纯java的subversion客户端库,使用SVNKit无需安装任何subversion客户端,支持各种操作系统。
资料地址:http://wenku.baidu.com/view/2f93208483d049649b665881.html
通过eclipse插件和svnkit的结合,开发出了一个在eclipse下可以获取修改的文件列表的功能。
插件引入之后,点击右键:
点击之后 ,生成文件列表到桌面,并给出提示。
问题:
(1)对eclipse插件不熟悉,每次调试,需要打包,重启eclipse,如此反复,很麻烦。如果直接调试的话,会新打开一个ide,里面也没有工程,无法测试
(2)获取工程后,如何获取对应的svn地址。这个通过google搜索,找到了淘宝几个小伙写的代码,里面有处理。taobao.reviewboard.学习了里面的代码。
(3)生成文件的时候,获取桌面路径的代码
public static File getDeskTopUrl() {
FileSystemView fsv = FileSystemView.getFileSystemView();
return fsv.getHomeDirectory();
}
(4)校验文件状态的时候,区分去不去远程svn库进行校验。如果是的话,速度太慢,eclipse可能直接卡死。 将第二个参数置为false,则只在本地进行校验。
client.getStatusClient().doStatus(commitFile, false);
(5)对 .svn 了解的太少,网上的资料也比较少。对里面的entries进行解析,应该也能得到版本信息。
参考资料:
http://subclipse.tigris.org/
http://svnkit.com/
http://www.cnblogs.com/skyme/archive/2012/01/12/2320128.html
eclipse3.7插件构建自定义右键菜单