svn spring项目增量打包工具
前提介绍
项目使用svn ,打包方式为war包,开发工具ide
项目有时候更新功能只需要更新部分class和html文件,但是要每个都打包并不是很简单
听说idea有现成的插件可以实现这个功能,但是我没找到,所以就自己写了一个工具,
我记得以前使用eclipse的时候有这个功能,但是具体忘记了。
下面我就介绍一下
整体逻辑
获取最近修改的文件
把需要打包的文件按照包路径放到一个新的包中
发给项目人员
svn命令 svn status
主要就是用到了这个命令,可以找到最近修改的文件
可以看到前面带M的就是最近更新的
剩下的就是复制文件到新的包了
代码编写过程
Process 类使用
执行cmd命令
用到的命令有
D: 找到盘符
cd /项目路径
svn status 执行svn命令
Process process = run.exec("cmd");OutputStream out = process.getOutputStream();out.write((args[0] + "\n").getBytes());out.write(("cd " + args[1] + "\n").getBytes());out.write("svn status\n".getBytes());out.flush();out.close();InputStream ret = process.getInputStream();InputStream err = process.getErrorStream();String result = readStr(ret);String errResult = readStr(err);
当然路径参数要从参数中传进来,也可以加一下提示信息
public static void main(String[] args) throws IOException {if(null == args || args.length == 0){System.out.println("输入 --help 查看更多命令");return;}if(args[0].indexOf("--help") > -1){System.out.println("程序名称 盘符 项目路径");System.out.println("示例:");System.out.println("java -jar svn-common.jar D: /project/demo");return;}}
文件复制
剩下的就相关文件进行复制,因为不同的文件可能位置不一样要单独处理,自己可以自行处理
最后
有需要代码的可以私信我留下邮箱,当然也可以自己试着写一写
脚本
可以自己搞一个脚本这样用起来更方便
@echo offjava -jar svn-common.jar D: /project/3.0newpause