IntelliJ和tomcat中的目录结构
 
 
project和module:
1、通过 .idea 下的modules.xml文件进行modules的管理,定义了module对应的iml文件,定义了iml文件的filepath和fileurl,通过iml文件加载module,如果修改了iml文件的filepath和fileurl,则定位不到iml,无法正确加载module。
 

 
当创建project时,其实也就默认创建了一个parent module,一个project下可以包含多个module(childmodule),childmodule会在下一级的目录中创建。
 
PhildeMacBook-Pro:IdeaProjects Phil$ ls
JavaWeb TestProject firstAngularJS weixin
PhildeMacBook-Pro:IdeaProjects Phil$ cd TestProject/
PhildeMacBook-Pro:TestProject Phil$ ls
ChildModule TestProject.iml out src web
 

 
.idea:一般是project的配置文件和配置信息,指定了artifact的位置,指定了项目中包含的modules(modules.xml文件);
out:则是打包成war的发布包artifact;war下面,一般包含一个index.jsp文件,WEB-INF目录,WEB-INF目录下包含web.xml配置文件、classes(编译成.class的java类)和lib文件夹(其它依赖的jar包等);
src:是project的原始文件,一般项目的java文件等都需要放在此目录下,可以在src目录中创建package,放各种java class类;
web:相当于webroot目录,是根据src生成.class二进制文件,是web application的主目录,包括index.jsp,WEB-INF目录,WEB-INF目录下包含web.xml配置文件、classes(编译成.class的二进制文件)和lib文件夹(其它依赖的jar包等);项目所需要的资源,比如jsp页面,image等,都可以放在web目录下。
.iml文件,module的对应文件;
External Libraries:主要包括tomcat和jdk的引用jar文件;
 
编译发布的一般过程为:
1、make:将java文件编译(compile)成.class二进制文件;
2、build成artifact:将class文件build成war包;
3、deploy:部署,选择artifact部署发布到tomcat服务器中。
 
可以向一个project中添加多个子modules,这些module可以也是web application,可以同时进行make,bulid,同时deploy到tomcat中,只需要注意在tomcat中的相对位置区分开即可。如下所示:

 
tomcat可以通过相同的IP、端口,同时发布不同的web应用,效果如下:

 

关于output目录:
IntelliJ在build成artifact(war)时,可以选择output directory:
直接output到tomcat中,这样当IntelliJ 关闭时,也可以直接访问发布到tomcat中的web应用,例如:
/Users/Phil/Documents/DevOps/tomcat/apache-tomcat-9.0.0.M10/webapps/JavaWeb/out/artifacts/JavaWeb_war_exploded
如果这样,则在tomcat的webapps目录下,就可以生成web项目的文件夹,如下:
/Users/Phil/Documents/DevOps/tomcat/apache-tomcat-9.0.0.M10/webapps/JavaWeb/
 
默认是output到project所在工程下的out文件夹中,在tomcat的webapps下并不生成相关文件夹,而是tomcat重定向到此artifact。这样也比较合理,毕竟开发机只是调试;实际部署时,还是需要将war远程cp到生产服务器的tomcat中。
 

IntelliJ和tomcat中的目录结构的更多相关文章

  1. Twitter Storm源代码分析之ZooKeeper中的目录结构

    徐明明博客:Twitter Storm源代码分析之ZooKeeper中的目录结构 我们知道Twitter Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeepe ...

  2. Tomcat中work目录

    Tomcat中work目录的作用: jsp运行时都要先转换成servlet,tomcat容器启动时会在目录下的work目录中生成一系列的文件夹和.java文件和编译后的.class文件. jsp最终转 ...

  3. Tomcat中work目录的作用

    今天在修改了某个jsp后发现:tomcat容器启动后,访问该jsp返回的结果依然是修改之前的内容,略感不解,于是乎研究了一下Tomcat中work目录的作用. Tomcat中work目录的作用: js ...

  4. Flask【第11篇】:整合Flask中的目录结构

    整合Flask中的目录结构 一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import ...

  5. Tomcat安装及其目录结构介绍

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomcat的安装版本有绿色解压 ...

  6. 浅谈android中的目录结构

    之前在android游戏开发中就遇到本地数据存储的问题:一般情形之下就将动态数据写入SD中存储,在没有SD卡的手机上就需另作处理了;再有在开发android应用的过程中,总要去调试APP,安装时又想去 ...

  7. 配置Tomcat直接显示目录结构和文件列表

    Tomcat是直接显示目录结构和文件列表,只是在配置里面给关闭了. 关键在这里:\conf\web.xml 这个文件有一段配置直接控制Tomcat是允许显示目录结构和文件列表. <servlet ...

  8. IDEA中Java目录结构

    IDEA中Java的目录结构 1.首先新建Project,选择Empty,新建空的项目 2.选择Module时候,需要选择JDK,JDK只需要选择到Java Home目录就可以了 3.创建好Modul ...

  9. iOS项目开发中的目录结构

    目录结构: 1.AppDelegate   这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来.   2.Models   这个目录下放一些与数据相关的Mod ...

随机推荐

  1. DVI-A、DVI-D、DVI-I接口定义、DVI接口图和DVI接口标准介绍

    http://blog.csdn.net/cd520yy/article/details/16993179

  2. Ranorex 5 发布,支持SAP、Oracle Forms、MS Dynamics等

    Ranorex 5 发布,支持SAP.Oracle Forms.MS Dynamics等 http://blog.csdn.net/testing_is_believing/article/detai ...

  3. uniGUI试用笔记(十四)TUniTreeView的CheckBox

    TUniTreeView目前版本没有封装CheckBox功能,所以需要手工处理,幸好0.99版提供部分代码了,修改过程如下: 1.uniGUIAbstractClasses.pas单元中修改基类TUn ...

  4. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  5. Exploring Ionic Lists

    Infinite Lists 由于手机不适合使用多页面显示posts,Infinite Lists成为各种新闻.咨询类app的标配.为了在ionic框架中使用到Infinite Lists,我们首先学 ...

  6. [转] VB之Val()函数的使用

    在VB中,也许你或多或少会希望得到的数据转换成数字类型,数字类型既可以是整形,单精度,双精度,浮点数,只要是数字类型这个都可以使用,不过此函数只返回字符串中包含的数字,若第一个字符为字母或者非数字字符 ...

  7. Mesh Wifi

    best idea ever Submitted by ozzy (not verified) on Mon, 2009-09-21 09:39. I thought of doing this on ...

  8. JavaScript 32位整型无符号操作

    在 JavaScript 中,所有整数字变量默认都是有符号整数,这意味着什么呢? 有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数. 数值范围从 -2^ ...

  9. Android应用中使用及实现系统“分享”接口

    为了应用的推广.传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信.微博等等一切实现了分享功能的应用列表.这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中.An ...

  10. RGB和HSB的转换推算

    RGB三原色是基于人肉眼对光线的生理作用.人眼内有三种椎状体“对这三种光线频率所能感受的带宽最大,也能独立刺激这三种颜色的受光体”,因此RGB称为三原色.比如,黄色波长的光对人眼的刺激效果,和红色与绿 ...