使用Maven開發的,有一個問題大家肯定是深惡痛絕。
“每一次開發完成,都需要maven打包部署”
比如某公司自己在maven上開發了插件,其中包含了自定義邏輯,那麼其部署每一次都必須package一把,開發效率極其低下。使用同步工具,差點讓我吐血,想想還是算了,自己寫個同步的程序.
- package com.ycl.filter.FileCleaner;
- import Java.io.File;
- import Java.io.FileFilter;
- import Java.io.FileNotFoundException;
- import Java.io.FileReader;
- import Java.io.FileWriter;
- import Java.io.IOException;
- import Java.io.Reader;
- import Java.io.Writer;
- import Java.util.HashMap;
- import Java.util.Map;
- import org.apache.commons.io.IOUtils;
- public class FileSyn {
- static Map<String, String> map = new HashMap<String, String>();
- /**
- * 同步一個源文件目錄到目標文件目錄
- * 默認去.svn不進行同步
- * @param target
- * @param source
- * @param fileName
- */
- public static void synFile(String target, String source) {
- File sourcePath = new File(source);
- File targetPath = new File(target);
- index(sourcePath);
- synPath(sourcePath, targetPath,new FileFilter(){
- @Override
- public boolean accept(File file) {
- if(file.getAbsolutePath().contains(".svn")){
- return false;
- }
- return true;
- }
- });
- }
- /**
- * 同步一個源文件目錄到目標文件目錄
- *
- * @param target
- * @param source
- * @param fileName
- */
- public static void synFile(String target, String source,FileFilter fileFilter) {
- File sourcePath = new File(source);
- File targetPath = new File(target);
- index(sourcePath);
- synPath(sourcePath, targetPath,fileFilter);
- }
- /**
- * 同步兩目錄下的文件
- * 過濾.svn文件夾下的不需要同步
- * @param sourcePath
- * @param targetPath
- */
- public static void synPath(File sourcePath, File targetPath,FileFilter fileFilter) {
- if (sourcePath.isDirectory()) {
- File[] files = sourcePath.listFiles(fileFilter);
- for (File sourceFile : files) {
- try {
- if (sourceFile.isDirectory()) {
- File targetFile = new File(targetPath, sourceFile
- .getName());
- if (!targetFile.exists()) {// 目錄不存在會自動創建
- targetFile.createNewFile();
- }
- synPath(sourceFile, targetFile,fileFilter);
- } else if (sourceFile.isFile()) {
- File targetFile = new File(targetPath, sourceFile
- .getName());
- if (!targetFile.exists()) {// 文件不存在會自動創建
- targetFile.createNewFile();
- }
- boolean flag = synFile(sourceFile, targetFile);
- if (flag) {
- System.out.println("同步文件:["
- + sourceFile.getAbsolutePath() + ","
- + targetFile.getAbsolutePath() + "]成功!");
- }
- }
- } catch (IOException e) {
- System.out.println("源文件:"+sourceFile.getAbsolutePath());
- e.printStackTrace();
- }
- }
- }
- }
- /**
- * 同步一個源文件目錄到目標文件目錄 指定某個文件名. 用源文件覆蓋目錄文件.[當源文件比目錄文件新的時候].
- *
- * @param target
- * @param source
- * @param fileName
- */
- public static boolean synFile(File sourceFile, File targetFile) {
- boolean flag = false;
- Reader reader = null;
- Writer writer = null;
- try {
- if(sourceFile.getAbsolutePath().contains("AddRole")){
- System.out.println("source最後修改