maven 打包的時候,由於clean慢形成一系列的問題

    不知道你有沒有發現,maven的clean過程有點慢,當有多個模塊須要以此打包的時候,這個clean時間就不容小覷。而後就有人把clean幹掉了,用了一段時間沒啥問題,而後你們以爲這個版本問題了,就把之前的不少包上載到這個版本上來,一堆問題,都是由於沒有刪除target形成的,後面試着用java遍歷文件夾的方式去刪除,仍是很慢。因而想到調用操做系統的刪除文件夾的命令進行操做。方案以下:
    java

private void commandDelFolder(String folderPath, Writer writer) {
        String[] cmds = new String[3];
        boolean isWindows = PropertyHolder.get().isWindows();
        if (isWindows) {
            cmds[0] = "cmd.exe";
            cmds[1] = "/c";
            cmds[2] = " rd /s /q " + folderPath;
        } else {
            cmds[0] = "/bin/sh";
            cmds[1] = "-c";
            cmds[1] = " rm -rf " + folderPath;
        }
        try {
            Process process = Runtime.getRuntime().exec(cmds);
            exeProcess(process, writer);
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
            throw new GenerateException(e);
        }
    }


    用了下,刪除速度很是快,上百兆的文件夾,也就幾秒鐘就刪除完了。用了好久沒啥問題,可是測試那邊不少時候用的是服務起環境,服務起環境和bat起環境,其配置文件不同,查別的問題發現日誌裏面有「文件名目錄名或卷標語法不正確」的提示,想着這種問題挺嚴重的,趕忙查這個問題,先加debug端口,試了幾種方法都沒有成功,沒辦法,只能經過log.info的方式打印下cmds ,後面發現路徑確實有問題,服務起的時候,多拼了一些東西,而後就修改了服務起環境的配置文件。想一想我可能走的是一條不尋常的路,否則別人若是用我這種方式取路徑不該該早就報錯了嘛。面試

相關文章
相關標籤/搜索