zoukankan      html  css  js  c++  java
  • IDEA | 使用Maven创建Web项目并配置Tomcat

    学习这种方式的原因是以后Tomcat中运行的绝大多数都是Web项目,而使用Maven工具能更加简单快捷的把Web项目给创建出来,所以Maven的Web项目具体如何来构建呢?

    在真正创建Maven Web项目之前,我们先要知道Web项目长什么样子,具体的结构是什么?

    Web项目结构

    Web项目的结构分为:开发中的项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们一个个来介绍下:

    • Maven Web项目结构: 开发中的项目

    • 开发完成部署的Web项目

      • 开发项目通过执行Maven打包命令package,可以获取到部署的Web项目目录
      • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
      • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下

    创建Maven Web项目(建议直接看小结)

    介绍完Maven Web的项目结构后,接下来使用Maven来创建Web项目,创建方式有两种:使用骨架和不使用骨架

    使用骨架

    具体的步骤包含:

    1.创建Maven项目

    2.选择使用Web项目骨架

    3.输入Maven项目坐标创建项目

    4.确认Maven相关的配置信息后,完成项目创建

    5.删除pom.xml中多余内容

    6.补齐Maven Web项目缺失的目录结构

    1. 创建Maven项目

    2. 选择使用Web项目骨架

    3. 输入Maven项目坐标创建项目

    4. 确认Maven相关的配置信息后,完成项目创建

    5. 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别

    6. 补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐,最终的目录结果如下

    不使用骨架

    具体的步骤包含:

    1.创建Maven项目

    2.选择不使用Web项目骨架

    3.输入Maven项目坐标创建项目

    4.在pom.xml设置打包方式为war

    5.补齐Maven Web项目缺失webapp的目录结构

    6.补齐Maven Web项目缺失WEB-INF/web.xml的目录结构

    1. 创建Maven项目

    2. 选择不使用Web项目骨架

    3. 输入Maven项目坐标创建项目

    4. 在pom.xml设置打包方式为war,默认是不写代表打包方式为jar

    5. 补齐Maven Web项目缺失webapp的目录结构

    6. 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构

    7. 补充完后,最终的项目结构如下:

    上述两种方式,创建的web项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。

    小结

    1.掌握Maven Web项目的目录结构

    2.掌握使用骨架的方式创建Maven Web项目

    3.掌握不使用骨架的方式创建Maven Web项目

    IDEA使用Tomcat

    • Maven Web项目创建成功后,通过Maven的package命令可以将项目打包成war包,将war文件拷贝到Tomcat的webapps目录下,启动Tomcat就可以将项目部署成功,然后通过浏览器进行访问即可。
    • 然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的
    • 如何在IDEA中能快速使用Tomcat呢?

    在IDEA中集成使用Tomcat有两种方式,分别是集成本地TomcatTomcat Maven插件

    集成本地 Tomcat 网上教程很多这里就不讲解了

    Tomcat Maven插件

    在IDEA中使用本地Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用Maven中的Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:

    1. 在pom.xml中添加Tomcat插件

      <build>
           <plugins>
               <plugin>
                   <groupId>org.apache.tomcat.maven</groupId>
                   <artifactId>tomcat7-maven-plugin</artifactId>
                   <version>2.2</version>
                   <configuration>
                       <!-- 设置编码格式 -->
                       <uriEncoding>UTF-8</uriEncoding>
                       <!-- 控制 tomcat 端口号 -->
                       <port>8080</port>
                       <!-- 项目发布到 tomcat 后的名称 -->
                       <!-- 如果写 /,相当于项目发布后的名称为 ROOT -->
                       <!-- 如果写 /abc,相当于项目发布后的名称为 abc -->
                       <path></path>
                   </configuration>
               </plugin>
           </plugins>
       </build>
      
    2. 使用Maven Helper插件快速启动项目,选中项目,右键-->Run Maven --> tomcat7:run

    注意:

    • 如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper ---> Install,安装完后按照提示重启IDEA,就可以看到了。

    • Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用

    • 使用Maven Tomcat插件,要想修改Tomcat的端口和访问路径,可以直接修改pom.xml

    <build>
        <plugins>
        	<!--Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                	<port>80</port><!--访问端口号 -->
                    <!--项目访问路径
    					未配置访问路径: http://localhost:80/tomcat-demo2/a.html
    					配置/后访问路径: http://localhost:80/a.html
    					如果配置成 /hello,访问路径会变成什么?
    						答案: http://localhost:80/hello/a.html
    				-->
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    The desire of his soul is the prophecy of his fate
    你灵魂的欲望,是你命运的先知。

  • 相关阅读:
    TOJ 假题之 Cow Brainiacs
    TOJ 2596: Music Notes
    Wannafly模拟赛2
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
    2017 ACM/ICPC Asia Regional Shenyang Online
    北京师范大学第十五届ACM决赛-重现赛
    Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)
    LibreOJ β Round #4
    长沙理工大学第十二届ACM大赛-重现赛
  • 原文地址:https://www.cnblogs.com/RioTian/p/15646257.html
Copyright © 2011-2022 走看看