欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿

eclipse實(shí)現(xiàn)JavaWeb應(yīng)用增量打包

2023-04-12


很多情況下,項(xiàng)目是不允許全量發(fā)布的,所以你得把有做修改的文件一個(gè)個(gè)挑出來(lái),如果有成千上百的文件,你是不是要頭大了? 以下方法應(yīng)該可以讓你得到解救!前提是你是用裝有svn plugin的eclipse上做開(kāi)發(fā)。


第一步,用svn生成項(xiàng)目的補(bǔ)丁文件。




選中你需要增量升級(jí)的文件,點(diǎn)擊完成。



運(yùn)行如下代碼




package verysoft.freepath;
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 {

 public static String patchFile="D:/patch.txt";//補(bǔ)丁文件,由eclipse svn plugin生成

 public static String projectPath="D:/workspace/FordClubJeeCms";//項(xiàng)目文件夾路徑

 public static String webContent="WebContent";//web應(yīng)用文件夾名

 public static String classPath="D:/workspace/FordClubJeeCms/build";//class存放路徑

 public static String desPath="C:/Users/xuwen/Desktop/update_pkg";//補(bǔ)丁文件包存放路徑

 public static String version="20140711";//補(bǔ)丁版本


 /**
 * @param args
 * @throws Exception 
 */
 public static void main(String[] args) throws Exception {
 copyFiles(getPatchFileList());
 }

 public static List getPatchFileList() throws Exception{
 List fileList=new ArrayList();
 FileInputStream f = new FileInputStream(patchFile); 
 BufferedReader dr=new BufferedReader(new InputStreamReader(f));
 String line;
 while((line=dr.readLine())!=null){ 
 if(line.indexOf("Index:")!=-1){
 line=line.replaceAll(" ","");
 line=line.substring(line.indexOf(":")+1,line.length());
 fileList.add(line);
 }
 } 
 return fileList;
 }

 public static void copyFiles(List list){

 for(String fullFileName:list){
 if(fullFileName.indexOf("src/")!=-1){//對(duì)源文件目錄下的文件處理
 String fileName=fullFileName.replace("src","");
 fullFileName=classPath+fileName;
 if(fileName.endsWith(".java")){
 fileName=fileName.replace(".java",".class");
 fullFileName=fullFileName.replace(".java",".class");
 }
 String tempDesPath=fileName.substring(0,fileName.lastIndexOf("/"));
 String desFilePathStr=desPath+"/"+version+"/WEB-INF/classes"+tempDesPath;
 String desFileNameStr=desPath+"/"+version+"/WEB-INF/classes"+fileName;
 File desFilePath=new File(desFilePathStr);
 if(!desFilePath.exists()){
 desFilePath.mkdirs();
 }
 copyFile(fullFileName, desFileNameStr);
 System.out.println(fullFileName+"復(fù)制完成");
 }else{//對(duì)普通目錄的處理
 String desFileName=fullFileName.replaceAll(webContent,"");
 fullFileName=projectPath+"/"+fullFileName;//將要復(fù)制的文件全路徑
 String fullDesFileNameStr=desPath+"/"+version+desFileName;
 String desFilePathStr=fullDesFileNameStr.substring(0,fullDesFileNameStr.lastIndexOf("/"));
 File desFilePath=new File(desFilePathStr);
 if(!desFilePath.exists()){
 desFilePath.mkdirs();
 }
 copyFile(fullFileName, fullDesFileNameStr);
 System.out.println(fullDesFileNameStr+"復(fù)制完成");
 }

 }

 }

 private static void copyFile(String sourceFileNameStr, String desFileNameStr) {
 File srcFile=new File(sourceFileNameStr);
 File desFile=new File(desFileNameStr);
 try {
 copyFile(srcFile, desFile);
 } catch (IOException e) {
 e.printStackTrace();
 }
 }




 public static void copyFile(File sourceFile, File targetFile) throws IOException {
 BufferedInputStream inBuff = null;
 BufferedOutputStream outBuff = null;
 try {
 // 新建文件輸入流并對(duì)它進(jìn)行緩沖
 inBuff = new BufferedInputStream(new FileInputStream(sourceFile));

 // 新建文件輸出流并對(duì)它進(jìn)行緩沖
 outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));

 // 緩沖數(shù)組
 byte[] b = new byte[1024 * 5];
 int len;
 while ((len = inBuff.read(b)) != -1) {
 outBuff.write(b, 0, len);
 }
 // 刷新此緩沖的輸出流
 outBuff.flush();
 } finally {
 // 關(guān)閉流
 if (inBuff != null)
 inBuff.close();
 if (outBuff != null)
 outBuff.close();
 }
 }

}

注意,以下部份請(qǐng)按照實(shí)際情況填寫(xiě)



public static String patchFile="D:/patch.txt";//補(bǔ)丁文件,由eclipse svn plugin生成

	public static String projectPath="D:/workspace/FordClubJeeCms";

	public static String webContent="WebContent";//web應(yīng)用文件夾名

	public static String classPath="D:/workspace/FordClubJeeCms/build";//class存放路徑

	public static String desPath="C:/Users/xuwen/Desktop/update_pkg";//補(bǔ)丁文件包存放路徑

	public static String version="20140711";//補(bǔ)丁版本



好了,運(yùn)行后得到結(jié)果




如果有多個(gè)人都修改了代碼,那么每個(gè)人在提交代碼之前先按第一步生成補(bǔ)丁文件再提交。當(dāng)所有人都提交代碼后,在一臺(tái)電腦上更新所有代碼,再在這臺(tái)電腦上用以上代碼運(yùn)行所有人生成的補(bǔ)丁文件即可。


本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com