开发利器之一键文件同步工具
2017-02-11 21:27
281 查看
本工程主要解决两个问题:
1.复制svn提测的不规则信息转化为标准格式提供给测试人员部署
2.将工程的dev分支变更一键直接同步到release分支,避免人工误差和繁琐浪费时间
将为开发人员自动同步代码每天节省20分钟,心情愉悦提升30%,工程为maven工程,附件有全部源码供大家作为工具使用和学习 还等什么,工具已开源,下载链接: http://download.csdn.net/detail/lw4135/9752593
必要注释:
1.FileSyn为工程运行的主入口
2.need_synchronize_files.txt:待同步文件名列表,直接从svn提测信息复制过来的
3.config.properites为工程运行配置文件,NEED_SYN_FILE_PATH:为待同步文件名列表的路径,
SRC_PATH:源路径,DEST_PATH:目的路径。
4.工程运行完毕会在控制台打印运行结果,复制失败的注意检查路径
以下为运行日志示例:
一、Java文件:(1个)
/java/com/ivan/common/controllers/testController.java
二、Html文件:(1个)
/views/test/test.html
三、文件夹:(1个)
/views/test
===============以上为提测列表复制给测试人员部署===============
待同步文件总个数:3,文件同步日志:
/java/com/ivan/common/controllers/testController.java复制完成
/views/test/test.html复制完成
/views/test复制完成
运行完毕!
部分源码:
还等什么,工具已开源,下载链接:
http://download.csdn.net/detail/lw4135/9752593
1.复制svn提测的不规则信息转化为标准格式提供给测试人员部署
2.将工程的dev分支变更一键直接同步到release分支,避免人工误差和繁琐浪费时间
将为开发人员自动同步代码每天节省20分钟,心情愉悦提升30%,工程为maven工程,附件有全部源码供大家作为工具使用和学习 还等什么,工具已开源,下载链接: http://download.csdn.net/detail/lw4135/9752593
必要注释:
1.FileSyn为工程运行的主入口
2.need_synchronize_files.txt:待同步文件名列表,直接从svn提测信息复制过来的
3.config.properites为工程运行配置文件,NEED_SYN_FILE_PATH:为待同步文件名列表的路径,
SRC_PATH:源路径,DEST_PATH:目的路径。
4.工程运行完毕会在控制台打印运行结果,复制失败的注意检查路径
以下为运行日志示例:
一、Java文件:(1个)
/java/com/ivan/common/controllers/testController.java
二、Html文件:(1个)
/views/test/test.html
三、文件夹:(1个)
/views/test
===============以上为提测列表复制给测试人员部署===============
待同步文件总个数:3,文件同步日志:
/java/com/ivan/common/controllers/testController.java复制完成
/views/test/test.html复制完成
/views/test复制完成
运行完毕!
部分源码:
package ivan; import ivan.util.ConfigPropUtil; import ivan.util.ReadFilesUtil; import java.io.File; import java.util.HashMap; import java.util.List; import org.apache.commons.io.FileUtils; /** * 文件复制-工程主函数入口 * */ public class FileSyn { /** * 待同步文件列表的路径 */ public final static String NEED_SYN_FILE_PATH = ConfigPropUtil.getPropertyValue("NEED_SYN_FILE_PATH"); // java文件路径举例 // D:\workspace10\dev\src\main\java\com\ivan\common\controllers\TestController.java // html文件路径举例 // D:\workspace10\dev\src\main\webapp\views\test\m\changeCity.html /** * 待复制的源文件路径头 */ public static final String SRC_PATH = ConfigPropUtil.getPropertyValue("SRC_PATH"); /** * 复制目的地文件路径头 */ public static final String DEST_PATH = ConfigPropUtil.getPropertyValue("DEST_PATH"); public static void main(String[] args) { HashMap<Integer, List<String>> fileMap = ReadFilesUtil.getFileMap(NEED_SYN_FILE_PATH); ReadFilesUtil.printFileMap(fileMap); List<String> javaList = fileMap.get(0);// Java类型文件 List<String> htmlList = fileMap.get(1);// html类型文件 List<String> packList = fileMap.get(2);// 其他文件或文件夹 System.out.println("===============以上为提测列表复制给测试人员部署=============== \n 待同步文件总个数:"+(javaList.size()+htmlList.size()+packList.size())+",文件同步日志:"); String errorMsg=""; errorMsg+=copyFileList(javaList, 0); errorMsg+=copyFileList(htmlList, 1); errorMsg+=copyFileList(packList, 2); if(!"".equals(errorMsg)){ System.err.println("以下文件复制失败,请检查路径是否正确:\n"+errorMsg); } System.out.println("运行完毕!"); } /** * 文件复制 * @param type 类型 * @param fileName文件名称 */ public static String copyFile(int type, String fileName) { String srcPath = SRC_PATH; String destPath = DEST_PATH; if (fileName.indexOf("/views/")!=-1) { srcPath += "\\webapp"; destPath += "\\webapp"; } String srcFile = srcPath + fileName; String destFile = destPath + fileName; try { if(type==2){ FileUtils.copyDirectory(new File(srcFile), new File(destFile)); }else { FileUtils.copyFile(new File(srcFile), new File(destFile)); } System.out.println(fileName + "复制完成"); } catch (Exception e) { e.printStackTrace(); return "fileName:"+fileName+" 源文件:" + srcFile + " 目的文件:" + destFile+"\n"; } return ""; } /** * 复制文件集合 * @param list文件名称 * @param type 类型 */ public static String copyFileList(List<String> list, int type) { String errorMsg=""; for (String str : list) { errorMsg+=copyFile(type, str); } return errorMsg; } }
package ivan.util; import java.io.BufferedReader; import java.io.FileReader; import java.util.Arr 4000 ayList; import java.util.HashMap; import java.util.List; /** *分类读取待同步文件工具类 */ public class ReadFilesUtil { public final static String filePath = ConfigPropUtil.getPropertyValue("NEED_SYN_FILE_PATH"); /** * 根据文件路径得到各种类型文件集合 * * @param filePath * @return */ public static HashMap<Integer, List<String>> getFileMap(String filePath) { HashMap<Integer, List<String>> fileMap = new HashMap<Integer, List<String>>(); try { List<String> javaList = new ArrayList<String>();// Java类型文件 List<String> htmlList = new ArrayList<String>();// html类型文件 List<String> packList = new ArrayList<String>();// 其他文件或文件夹 FileReader fr = new FileReader(filePath); BufferedReader br = new BufferedReader(fr); String s; while ((s = br.readLine()) != null) { if (s.indexOf("src/main/") != -1) { // 路径处理 s = s.substring(s.indexOf("src/main/")).replace("src/main", "").replace("/webapp", ""); if (s.endsWith(".html")) { htmlList.add(s); } else if (s.endsWith(".java")) { javaList.add(s); } else { packList.add(s); } } } fileMap.put(0, javaList); fileMap.put(1, htmlList); fileMap.put(2, packList); br.close(); return fileMap; } catch (Exception e) { e.printStackTrace(); return fileMap; } } /** * 根据文件路径得到各种类型文件集合 * * @param filePath * @return */ public static void printFileMap(HashMap<Integer, List<String>> fileMap) { try { List<String> javaList = fileMap.get(0);// Java类型文件 List<String> htmlList = fileMap.get(1);// html类型文件 List<String> packList = fileMap.get(2);// 其他文件或文件夹 // 输出 if (javaList.size() > 0) { System.out.println("一、Java文件:(" + javaList.size() + "个)"); for (String str : javaList) { System.out.println(str); } } if (htmlList.size() > 0) { System.out.println("二、Html文件:(" + htmlList.size() + "个)"); for (String str : htmlList) { System.out.println(str); } } if (packList.size() > 0) { System.out.println("三、文件夹:(" + packList.size() + "个)"); for (String str : packList) { System.out.println(str); } } } catch (Exception e) { e.printStackTrace(); } } /** * 测试读取文件列表 * @param args */ public static void main(String[] args) { HashMap<Integer, List<String>> fileMap = getFileMap(filePath); printFileMap(fileMap); } }
还等什么,工具已开源,下载链接:
http://download.csdn.net/detail/lw4135/9752593
相关文章推荐
- 用Chrome开发工具调试并且同步文件
- C#文件同步工具教程
- Symbian OS 开发初级手册 (4) mmp, pkg 文件 和 makesis 工具
- FTP文件同步工具(FTP_File_Synchronizer) 源代码
- DropBox 超实用的免费文件网络同步、备份、分享工具
- 软件开发工具之六 :CHM文件制作
- Cygwin环境下Unison文件同步工具的使用
- Symbian OS 开发初级手册 (4) mmp, pkg 文件 和 makesis 工具
- 文件同步工具:Unison[转]
- 文件同步备份工具―Second Copy
- SugarSync 又一款优秀的免费网络同步工具 (PC、Mac与手机文件同步/备份/分享)
- C#文件同步工具教程
- 使用pl/sql developer开发工具无法编译存储过程,触发器,包等程序文件
- 使用pl/sql developer开发工具无法编译存储过程,触发器,包等程序文件
- 快速开发时可以使用的Java文件工具方法
- Nhibernate开发代码工具,自动生成实体类、NHibernate的HBM映射文件和数据访问层的代码
- Google(谷歌)中国与全球同步推出离线应用开发工具(Google Gears)
- 微软拟为阅读障碍者开发文件转换工具
- 文件同步备份工具Synkron
- 文件同步工具