如何在IDEA中用maven启动Tomcat
如何在IDEA中用maven启动Tomcat
对于自学党来说,maven的配置很是复杂,并且网上没有很完整的配置文章,导致大家在配置时出现了很多错误,浪费了不少时间,所以我写了一篇文章来教学,如何在IDEA中用maven启动tomcat(JavaWeb项目),希望对大家有帮助
一、所需软件及其版本
- IDEA:2020.1.1(方便破解…但正版万岁)
- maven:3.6.3版本
- Tomcat:Tomcat7
- JRE:JRE1.8(Tomcat和JRE的版本有严格的要求,不匹配会无法加载jsp文件)
二、配置步骤
配置maven仓库
修改本地仓库地址:在任意文件夹下建立localRepository文件夹

打开maven/conf/settings.xml中找到下方代码,并追加一行代码(具体地址是localRepository的地址)
<localRepository>D:\maven\apache-maven-3.6.3-bin\localRepositorylocalRepository>
配置IDEA中的maven
点击IDEA主页面的Configure–>Settings(一定要在主页面中配置,否则作用域会不同)

左上角搜索maven,回车后在maven home directory中找到本地maven的路径
将user setting file 和 local repository的override选中
并在user setting file中选中本地的conf\setting.xml文件,此时local repository会自动变到刚才配置的仓库路径

点击左侧的runner,配置jre并在VM options中加入代码 -DarchetypeCatalog=internal

创建项目
点击create project,选择maven,勾选create from archetype(用骨架构建),在骨架中找到webapp骨架,下一步

artifact coordinates不做改动,输入项目name和location,下一步

检查,确保三个地址与上文配置中的一致,完成创建

导入依赖jar包
进入项目,看到如下项目目录结构及BUILD SUCCESS 代表创建成功


在main文件夹下建立java文件夹并将其设置为source root 文件夹

在java文件夹下创建com.test.servlet包,在包中创建myServlet.java文件作为测试用的servlet

由于没有导入sevlet有关的jar包,我们只能在web.xml中自行配置,代码如下。
<web-app><display-name>Archetype Created Web Applicationdisplay-name><servlet><servlet-name>myServletservlet-name><servlet-class>com.test.servlet.myServletservlet-class>servlet><servlet-mapping><servlet-name>myServletservlet-name><url-pattern>/url-pattern>servlet-mapping>
web-app>

导入依赖jar包(在maven中导入jar包都是同样的步骤):
打开mvn仓库官网:mvn仓库官网
在搜索栏中搜索要用的jar包,此次要用servlet-api 和 jsp-api,我们先导入servlet-api
点击第一个API

进入后,点击3.1.0版本号

复制代码

在pom.xml的dependencies标签下粘贴代码(这里会有标红,我们点击下图中的图标,等待下载即可)


同理,jsp-api也导入到项目中

编写servlet类
在myServlet.java下定义servlet,我们只做最简单的跳转测试,代码如下
package com.test.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class myServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getRequestDispatcher("/hello.jsp").forward(req,resp);}
}
在webapp文件下创建hello.jsp,输出hello world,(不建立的话会出现404)

配置tomcat,用maven启动
点击idea右上角的add configuration

点击+,配置tomcat server(local),我们只做本地测试,所以用local

在application server中找到本地安装的tomcat路径,jre设置为1.8,其余不做改动

在deployment中点击右侧+,点击artifact,添加xxx:war exploded

回到server设置,将两个选项修改为update classes and resources(这里可以不修改,只不过方便测试)

此时add configurations会变成tomcat,我们点击下箭头,继续edit configurations

同样的,点击+,添加maven,name改为tomcat,command line改为tomcat7:run,点击ok

此时,我们已经配置好了基本的设置,还需要在pom.xml中添加tomcat插件,代码如下
<plugin><groupId>org.apache.tomcat.mavengroupId><artifactId>tomcat7-maven-pluginartifactId><version>2.2version>plugin>

至此,配置完毕
测试
点击右上角的绿色箭头,运行maven(如果要以debug运行,请点击右侧的小虫子)

看到代码下方出现如下信息

复制变蓝的url到chrome浏览器,在后面追加myServlet,点击回车,页面出现hello world,配置成功。

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
