maven 打包的时候,因为clean慢造成一系列的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    不知道你有没有发现,maven的clean过程有点慢,当有多个模块需要以此打包的时候,这个clean时间就不容小觑。然后就有人把clean干掉了,用了一段时间没啥问题,然后大家觉得这个版本问题了,就把以前的很多包上载到这个版本上来,一堆问题,都是因为没有删除target造成的,后面试着用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 ,后面发现路径确实有问题,服务起的时候,多拼了一些东西,然后就修改了服务起环境的配置文件。想想我可能走的是一条不寻常的路,不然别人如果用我这种方式取路径不应该早就报错了嘛。

转载于:https://my.oschina.net/u/2618266/blog/1799956

你可能感兴趣的:(maven 打包的时候,因为clean慢造成一系列的问题)