svn spring项目增量打包工具
前提介绍
项目使用svn ,打包方式为war包,开发工具ide
项目有时候更新功能只需要更新部分class和html文件,但是要每个都打包并不是很简单
听说idea有现成的插件可以实现这个功能,但是我没找到,所以就自己写了一个工具,
我记得以前使用eclipse的时候有这个功能,但是具体忘记了。
下面我就介绍一下
整体逻辑
-
获取最近修改的文件
-
把需要打包的文件按照包路径放到一个新的包中
-
发给项目人员
shellsvn命令 svn status
主要就是用到了这个命令,可以找到最近修改的文件
可以看到前面带M的就是最近更新的
剩下的就是复制文件到新的包了
代码编写过程
Process 类使用
执行cmd命令
用到的命令有
D: 找到盘符
cd /项目路径
svn status 执行svn命令
java
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);
当然路径参数要从参数中传进来,也可以加一下提示信息
java
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;
}
}
文件复制
剩下的就相关文件进行复制,因为不同的文件可能位置不一样要单独处理,自己可以自行处理
最后
有需要代码的可以私信我留下邮箱,当然也可以自己试着写一写
脚本
可以自己搞一个脚本这样用起来更方便
bash
@echo off
java -jar svn-common.jar D: /project/3.0new
pause