使用的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的配置有关

相关文章: