package com.qxueyou.scc.base.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
/**
* 前三个属性根据实际存储位置设置
* @author ody.yuan
*
*/
public class MyJsCssVersionUtils {
/** web工程的发布路径 */
private static String webContent = "qxueyou";
/** web工程中web文件夹的绝对路径 D:\project\workspace_web\versioncontroller0\web\js\qxueyou.js */
/** web工程中web文件夹的绝对路径 D:\project\workspaceStkkk\qxueyou_web\web\js\qxueyou.js */
private static String webFileAbsolutePath = "C:" + File.separator + "workspace" + File.separator + "qxueyou_web";
/** 扫描js、css、html文件的文件夹绝对路径,固定设置为web目录 */
private static String fileScanDirec = "C:" + File.separator + "workspace" + File.separator + "qxueyou_web";
/** 匹配html中引入js文件 */
private static Pattern scriptImportPattrrn = Pattern.compile("
if (scriptImportPattrrn.matcher(line).find()) {
//以引号分隔,以/开始
String md5Version = null;
String strLine[] = line.split("\"");
for(String str:strLine){
if(null != md5Version){
break;
}
if(str.startsWith("/")){
//如果已有版本号,按?分隔,取第一个
if(str.lastIndexOf("?version") != -1){
str = str.substring(0, str.lastIndexOf("?version"));
}
md5Version = map.get(str);
}
}
int pos = line.lastIndexOf(".js");
if(null != md5Version){
String modLine = line.substring(0, pos) + ".js?version=" + md5Version+ "\">";
return modLine;
}
//匹配html引入css文件 eg:
} else if (cssImportPattrrn.matcher(line).find()) {
//以引号分隔,以/开始
String md5Version = null;
String strLine[] = line.split("\"");
for(String str:strLine){
if(null != md5Version){
break;
}
if(str.startsWith("/")){
//如果已有版本号,按?分隔,取第一个
if(str.lastIndexOf("?version") != -1){
str = str.substring(0, str.lastIndexOf("?version"));
}
md5Version = map.get(str);
}
}
int pos = line.lastIndexOf(".css");
if(null != md5Version){
String modLine = line.substring(0, pos) + ".css?version=" + md5Version+ "\" rel=\"stylesheet\">";
return modLine;
}
}
return line;
}
/**
*
* @param args
*/
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
String version = df.format(date);
Map objMap = new HashMap();
//添加js文件
getFileMD5Map(fileScanDirec,".js",objMap,version);
//添加CSS文件
getFileMD5Map(fileScanDirec,".css",objMap,version);
//循环html文件,修改其中的css和js引入路径
getHtml(fileScanDirec,".ftl",objMap);
System.out.println("successful");
}
}