利用svn 日志、eclipse 增量发包,非常简单!
来源:互联网 发布:中科院软件所邮编 编辑:程序博客网 时间:2024/06/01 10:07
是不是还在为网上分享东西一点诚意都没有而发愁,自己动手轻松解决增量发包难题!
1.获取SVN的changeLog
打开SVN资源历史记录,选择你要发包的记录。右击。导出日志
以下是日志的样子:
r63 | woshitianc | 2017-12-23 22:01:36 CSTChanged paths: M /root/Testproject/ANT_DEMO/demo/src/com/csdn/common/util/StringUtil.java M /root/Testproject/ANT_DEMO/demo/src/com/csdn/service/First.java A /root/Testproject/ANT_DEMO/demo/src/com/csdn/service/Second.java M /root/Testproject/ANT_DEMO/demo/src/com/csdn/service/Third.java M /root/Testproject/ANT_DEMO/demo/webapps/demo/welcome/welcome.jsp M /root/Testproject/ANT_DEMO/demo/webapps/demo/images/welcome.png<description>测试</description>xds927
2、根据导出的日志编写java代码拷贝你增量所需要的文件,以下代码,结合自己的需求做些修改接行了
package com.test.build;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;public class FileUtils { /** * 拷贝文件 * @param file 想要读取svn日志的文件对象 * @param appDir 工程所在的文件夹的路径 * @param desDir 导出所在文件夹的路径 * @return 返回文件内容 */ public static String copyFiles(File file,String appDir,String desDir){ StringBuilder result = new StringBuilder(); try{ BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件 String s = null; int size=1; while((s = br.readLine())!=null){//使用readLine方法,一次读一行 int index=s.indexOf("/trunk"); if (index<0) {continue;} s=s.substring(index+6); //把java文件路径替换成编译好的classes文件的路径 if (s.contains("/src/")) {s=s.replace("/src/","/WebContent/WEB-INF/classes/");s=s.replace(".java",".class");} //过滤掉重复的源文件目录 if (result.indexOf(s)>-1) {continue;} String desStr=desDir+s; File srcFile = new File(appDir+s); //源文件对象 File destFile = new File(desStr); //目标文件对象 if (!(srcFile.exists())) { //判断源文件是否存在 System.out.println(s+"文件不存在......."); continue; } if (!(destFile.exists())) { //判断目标文件是否存在 desStr=desStr.substring(0,desStr.lastIndexOf("/")); File dir = new File(desStr); //创建文件夹 if (!dir.exists()) {dir.mkdirs();} //创建文件 destFile.createNewFile(); //如果不存在则创建新文件 } //使用源文件对象创建文件输入流对象 FileInputStream fis = new FileInputStream(srcFile); //使用目标文件对象创建文件输出流对象 FileOutputStream fos = new FileOutputStream(destFile); byte[] buf = new byte[(int)srcFile.length()]; //创建字节数组,作为临时缓冲 System.out.println("开始复制文件..."+size); //while (fis.read(buf) != -1) { //循环从文件输入流中读取数据 fis.read(buf); fos.write(buf); //写入到文件输出流中 //} System.out.println("文件:"+s); System.out.println("文件复制成功!"); fis.close(); //关闭流 fos.close(); result.append(s+System.lineSeparator()); size++; } size--; System.out.println("文件复制总数: "+size+"个!"); br.close(); }catch(Exception e){ e.printStackTrace(); } return result.toString(); } public static void main(String[] args){ //工程所在的文件夹 String appDir="F:/workspace/test"; //导出所在文件夹 String desDir="C:/Users/Administrator/Desktop/test"; //svn日志存放位置 File file = new File("F:/workspace/build/src/com/test/build/changeLog.txt"); copyFiles(file,appDir,desDir); }}
注意:执行拷贝前,记得clean一下工程,确保编译好的是最新的class文件,还有内部类的class文件注意下,免得遗漏了!
阅读全文
0 0
- 利用svn 日志、eclipse 增量发包,非常简单!
- 利用SVN实现增量打包
- 实现自己的日志函数,非常简单。
- 简单的ssl发包客户端
- eclipse、Android查看svn更新日志
- SVN增量备份方案
- SVN导出增量包
- SVN服务器增量备份
- mac终端中svn的使用(非常简单)
- mac终端中svn的使用(非常简单)
- Eclipse利用SVN插件上传下载项目
- log4j设置增量日志
- perl增量分析日志
- 利用pktgen发包工具做性能测试
- 利用pktgen发包工具做性能测试
- Android自动打包发包 利用Jenkins
- 利用ant脚本 自动构建svn全量/增量/减量 项目升级包
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包
- Android——开发人员不得不收集的工具类集合
- 深度学习-自学手册
- C++之STL -- string
- vb.net 教程 8-3 数据库操作10-1
- 呼唤布鲁诺精神
- 利用svn 日志、eclipse 增量发包,非常简单!
- 推导Beta分布公式
- Python3的编码问题
- 利用timeit模快测试代码运型速度
- 遍历Java Map的方法——Java基础
- 约瑟夫问题
- s3c2440中断体系结构
- 217. Contains Duplicate
- 【SpringData】轻松愉快之玩转SpringData( 第2章 使用传统方式访问数据库