zoukankan      html  css  js  c++  java
  • IntelliJ和tomcat中的目录结构

    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中。
     
  • 相关阅读:
    Java基础06 组合
    纸上谈兵: 树, 二叉树, 二叉搜索树
    Java基础05 实施接口
    纸上谈兵: 队列 (queue)
    纸上谈兵: 数学归纳法, 递归, 栈
    Java基础01 从HelloWorld到面向对象
    纸上谈兵: 表 (list)
    Java基础02 方法与数据成员
    纸上谈兵: 排序算法简介及其C实现
    纸上谈兵: 栈 (stack)
  • 原文地址:https://www.cnblogs.com/bluesungz/p/5925960.html
Copyright © 2011-2022 走看看