首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

依据svn的ChangeLog打出更新包

2013-08-27 
根据svn的ChangeLog打出更新包ChangeLog.txtr628 | zhoulz | 2013-08-18 22:27:18 CSTChanged paths:M /tr

根据svn的ChangeLog打出更新包
ChangeLog.txt

r628 | zhoulz | 2013-08-18 22:27:18 CSTChanged paths:M /trunk/config/case_task.xmlM /trunk/src/com/paic/rsms_case/web/TaskController.javaM /trunk/webroot/task/taskList.jspM /trunk/webroot/task/taskServiceList.jsp修改问题查询列表SQL----------------------------------------


package com.paic;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class ChangeLogUtils {static String[] SRC = new String[] { "src", "config" };static String WEB = "WebContent";static String WEBAPPS = "D:/Tomcat7.0.8/webapps/";static String PROJECT = "knows";static String DEPLOY_DIR = "/WEB-INF/classes";static String CHANGE_LOG_PREFIX = "/trunk/";static String CHANGE_LOG_FILE_NAME = "changelog.txt";static String TARGET = "D:/Users/ex-zhoulingzhou002/Desktop/changelog/";static{WEBAPPS += PROJECT;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");TARGET = TARGET+sdf.format(new Date())+"/"+PROJECT;File f = new File(TARGET);if(f.exists()){try {del(TARGET);} catch (IOException e) {e.printStackTrace();}}f.mkdirs();}public static void main(String[] args) throws Exception {String root = ChangeLogUtils.class.getResource("/").getPath();File file = new File(root + CHANGE_LOG_FILE_NAME);BufferedReader br = new BufferedReader(new FileReader(file));String line = null;List<String> files = new ArrayList<String>();while ((line = br.readLine()) != null) {if(line.contains(CHANGE_LOG_PREFIX)){String filePath = line.replaceAll(".*?" + CHANGE_LOG_PREFIX + "(.*?)", "$1").replaceAll("\\.java", ".class");String source = "",target = "";if(filePath.startsWith(WEB)){filePath = filePath.replaceFirst(WEB, "");source = WEBAPPS+filePath;target = TARGET + filePath;}else{for (String src : SRC) {if (filePath.startsWith(src)) {filePath = filePath.replaceFirst(src, "");source = WEBAPPS+DEPLOY_DIR+filePath;target = TARGET + DEPLOY_DIR + filePath;}}}copyFile(new File(source), new File(target));}}br.close();}    // 复制文件    public static void copyFile(File sourceFile, File targetFile) throws Exception {        BufferedInputStream inBuff = null;        BufferedOutputStream outBuff = null;        try {            // 新建文件输入流并对它进行缓冲            inBuff = new BufferedInputStream(new FileInputStream(sourceFile));                        if(!targetFile.exists()){            try{            targetFile.getParentFile().mkdirs();            targetFile.createNewFile();            }catch(Exception e){            System.out.println(targetFile.getAbsolutePath());            throw e;            }            }            // 新建文件输出流并对它进行缓冲            outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));            // 缓冲数组            byte[] b = new byte[256];            int len;            while ((len = inBuff.read(b)) != -1) {                outBuff.write(b, 0, len);            }            // 刷新此缓冲的输出流            outBuff.flush();        } finally {            // 关闭流            if (inBuff != null)                inBuff.close();            if (outBuff != null)                outBuff.close();        }    }    /**     *      * @param filepath     * @throws IOException     */    public static void del(String filepath) throws IOException {        File f = new File(filepath);// 定义文件路径        if (f.exists() && f.isDirectory()) {// 判断是文件还是目录            if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除                f.delete();            } else {// 若有则把文件放进数组,并判断是否有下级目录                File delFile[] = f.listFiles();                int i = f.listFiles().length;                for (int j = 0; j < i; j++) {                    if (delFile[j].isDirectory()) {                        del(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录路径                    }                    delFile[j].delete();// 删除文件                }            }        }    }}

热点排行