Tomcat本地部署SpringBoot项目

一、打包为war

相对于打包出jar,打包为war会复杂点:

Maven的pom.xml里设置:

XML 复制代码
<packaging>war</packaging>

然后,在spring-boot-starter-web依赖节点中移除tomcat相关外部包:

XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

在依赖包内添加Servlet的包:

XML 复制代码
<!--        打包成war包,添加Servlet依赖-->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>9.0.43</version>
</dependency>

二、打包

1、如果你的项目是Spring项目,需要设置启动主类SpringBootServletInitializer,创建一个SpringBootStartApplication类,同时继承SpringBootServletInitializerl类:

java 复制代码
public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(ToolApplication.class);
    }
}

2、使用maven的clean、package将项目打包为war包

当然,你也可以直接到项目目录下,使用Maven命令打包:

XML 复制代码
mvn clean
mvn package

三、配置Tomcat

1、将刚刚打包好的.war文件,上传到tomcat里的/webapps内

2、配置server.xml文件

XML 复制代码
<Service name="Catalina">
    <!-- 每个项目的端口号也要进行区分,保证不被占用 -->
    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
    <!-- 这里的AJP端口同样也要进行区分 -->
	<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            <!-- 这里是想要部署的对应项目的名称 -->
		    <Context docBase="D:\class\JavaWeb\tomcat\apache-tomcat-8.5.46\webapps\ruoyi-admin" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>

path:你希望用什么访问地址到你项目文件

docBase:项目地址(可以是绝对路径,也可相对路径)

保存,退出即可。

四、启动Tomcat

启动终端进入Tomcat的bin目录然后直接执行startup.bat命令

直接浏览http://localhost:8080/ruoyi-admin

相关推荐
极客先躯1 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188961 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我123451 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
aXin_ya2 小时前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务
Halo_tjn2 小时前
Java Set集合相关知识点
java·开发语言·算法
Linsk2 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
许彰午2 小时前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试
zhouwy1132 小时前
Java 快速入门笔记:从基础语法到 Spring Boot 实战
java
极创信息2 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
SamDeepThinking3 小时前
并发量就算只有2,该上锁还得上呀
java·后端·架构