参考:
IDEA中Facets和Artifacts配置说明
idea中artifacts、facets、modules
IntelliJ IDEA 部署 Web 项目,终于搞懂了
传统SpringMvc项目目录和对应tomcat配置如下:
在日常开发过程中,我们修改完java代码后,接着就点击 Build 编译,然后就可以去验证代码了(前提是 On 'Update' Action 选择了 Update classes and resources)
但是修改JSP的时候遇到一个问题:每次修改完JSP文件后,都必须重启tomcat才能使应用的页面生效。仅仅点击Build(Build Project)是不能使JSP页面生效的。
如果要使JSP页面或者说是 webapp 目录下的修改生效,就需要点击 Build 下的 Build Artifact。其实这步操作就是 Tomcat配置 Before launch 中的 Build 'favor-bill:war exploded' artifact,即重新构建war包,将classes和resources、webapp目录复制到 target 目录中。
还用另外一种方法将 Build Artifact 和 Build 合二为一。即在 Project Setting 的 Artifacts 勾选 Include in project build,意为在 Build 的时候构建artifact。
注:IDEA中web应用的配置都在 Project Structure。
还有一个问题,百思不得其解。当启动tomcat后,在 target 和 target/favor-bill-1.0-SNAPSHOT/WEB-INF 下各有1个classes文件夹。而当点击Build后,只会将修改的java文件重新编译到 target/classes 文件夹下,WEB-INF/classes里的class文件没变。这个时候修改的代码在web应用里竟然生效了。
那么IDEA中启动tomcat应用时,生效的是 target/classes 还是 target/favor-bill-1.0-SNAPSHOT/WEB-INF/classes呢???