【Tomcat与Idea】使用idea配置tomcat开发

使用的idea是ultimate版本

新建项目

【Tomcat与Idea】使用idea配置tomcat开发

代码

注意红框里的代码,这个是获取真实路径,这块会显示后面的两种部署方式的不同

【Tomcat与Idea】使用idea配置tomcat开发【Tomcat与Idea】使用idea配置tomcat开发

配置artifacts

【Tomcat与Idea】使用idea配置tomcat开发
这两个都是web application
【Tomcat与Idea】使用idea配置tomcat开发
archive会打成一个war文件,而exploded不会打包成war而是直接以classes的形式

以exploded为例
【Tomcat与Idea】使用idea配置tomcat开发
红框上方的output directory的意思是打包后这些文件生成在什么地方
红框里的意思是,生成包的结构是这个样子的

  1. 首先里面有一个WEB-INF/classes,文件夹里有compile output,指的就是src文件里的代码编译出的class文件
  2. 还有个Web facet resource,还记得我们新建项目的时候选择的是web application么,这会导致文件夹下面有一个web文件夹,用于存放web网页等资源,如下所示
    【Tomcat与Idea】使用idea配置tomcat开发
    那么这个Web facet resource的意思就是把这个文件夹里的所有东西,也放在打包生成的包里,
    我们现在来build
    【Tomcat与Idea】使用idea配置tomcat开发
    可以看到生成的文件如下,目录是我们刚刚看到的output directory,上面的红框就是compile output,下面的红框就是web文件夹里的东西
    【Tomcat与Idea】使用idea配置tomcat开发
    这进一步告诉我们的就是,如果我们最开始构建项目的时候如果没有选择web application,我们仍然可以完成部署,手动把web文件夹下面的东西添加进artifacts的配置里面去就可以了,library file就是依赖的jar,module output就是编译输出,model source就是src源码
    【Tomcat与Idea】使用idea配置tomcat开发

IDEA配置Tomcat

【Tomcat与Idea】使用idea配置tomcat开发
然后可以把我们刚刚配置好的artifacts放进deployment里
【Tomcat与Idea】使用idea配置tomcat开发
这样的话,启动这个tomcat的时候,会将两个项目都部署进去
【Tomcat与Idea】使用idea配置tomcat开发
命令行打印
【Tomcat与Idea】使用idea配置tomcat开发
可见这个就是在idea工程文件夹下面运行的
【Tomcat与Idea】使用idea配置tomcat开发
根目录为
【Tomcat与Idea】使用idea配置tomcat开发
可见这种方式把工程打包进tomcat文件夹里了

Exploded和Artifacts的区别

看一下编译生成的文件就可以知道了
【Tomcat与Idea】使用idea配置tomcat开发
正如之前所说,exploded没有进行打包,这个是在idea里设置的

热部署

所谓热部署就是更改文件即时完成网页更新,我原本想的是先更新一点代码,然后通过build artifacts更新部署的文件
【Tomcat与Idea】使用idea配置tomcat开发
artifacts打包方式部署的话,能够完成实时更新
exploded那种总得需重新deploy一下,如下,下面那个小箭头就是重新部署的意思
【Tomcat与Idea】使用idea配置tomcat开发
应该跟tomcat的配置有关