最近在项目遇到了一点问题,在用idea rebuild 的时候,java 类老是不编译。Google 一下,发现以前没有注意到的问题。这里记录一下。
war exploded 和 war 的区别
war exploded : 其实是把源码编译,然后发布到 IDEA 的工作空间,target 的目录下,支持热部署(每次只编译更新的代码,适合开发时用)
war : 每次都把所有class文件打成war包,发布到tomcat服务器,不支持热部署(在发布时用)
其实就是编译的位置不一样,获取上下文的位置也会不一样
String contextPath = request.getSession().getServletContext().getRealPath("/")
war 模式始终是获取到的路径如下:
war exploded 模式获取到的路径如下: