根据svn的ChangeLog打出更新包

ChangeLog.txt
r628 | zhoulz | 2013-08-18 22:27:18 CST
Changed paths:
	M /trunk/config/case_task.xml
	M /trunk/src/com/paic/rsms_case/web/TaskController.java
	M /trunk/webroot/task/taskList.jsp
	M /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();// 删除文件
                }
            }
        }
    }
}

你可能感兴趣的:(SVN)