需求背景
新人一枚,项目需要频繁增量上线,每次增量上线的文件整理十分头疼,网上搜了一大堆打增量工具,整理删选了比较好用的方案,特意记录在此。
方案
编写文件复制工具,依据资源路径复制编译后的文件夹中文件
注意点:
内部类也需要复
代码如下
/**
* @Description:
* @Package:PACKAGE_NAME
* @author:liyang
* @CREAT_TIME:2019/2/2114:25
* @Emial:liyang@china.kjlink.com
*/
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.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class FreePatchUtil {
//补丁文件,由eclipse svn plugin生成或手动创建,格式为:Index:+空格+相对路径(src/...)
//eg:
//Index: src\main\java\com\test\framework\supplier\controller\SupplierProprietaryController.java
//Index: src\main\webapp\js\pages\product\configuration.js
//读取清单文件位置
public static String patchFile = "E:\\patch\\2019-03-01Test.txt";
//本地项目路径(src之前路径)
public static String projectPath="E:\\source\\sapms";
// web应用文件夹名()
public static String webContent="src/main/webapp/";
//本地项目编译class存放路径,即文件复制源
public static String classPath="E:\\source\\test\\target\\test\\WEB-INF\\classes";
//补丁文件包存放路径(打包文件地址,不存在则自动创建)
public static String desPath="E:\\test增量";
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
copyFiles(getPatchFileList());
}
public static List<String> getPatchFileList() throws Exception{
List<String> fileList=new ArrayList<String>();
FileInputStream f = new FileInputStream(patchFile);
BufferedReader dr=new BufferedReader(new InputStreamReader(f,"utf-8"));
String line;
while