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

相关推荐
MXM_77717 小时前
laravel 并发控制写法-涉及资金
java·数据库·oracle
进阶的小名17 小时前
[超轻量级消息队列(MQ)] Redis 不只是缓存:我用 Redis Stream 实现了一个 MQ(自定义注解方式)
数据库·spring boot·redis·缓存·消息队列·个人开发
这就是佬们吗17 小时前
告别 Node.js 版本冲突:NVM 安装与使用全攻略
java·linux·前端·windows·node.js·mac·web
何中应17 小时前
@Autowrited和@Resource注解的区别及使用场景
java·开发语言·spring boot·后端·spring
一条咸鱼_SaltyFish17 小时前
[Day16] Bug 排查记录:若依框架二次开发中的经验与教训 contract-security-ruoyi
java·开发语言·经验分享·微服务·架构·bug·开源软件
荒诞硬汉17 小时前
递归的学习
java·学习
孤独天狼17 小时前
java设计模式
java
一勺菠萝丶17 小时前
Java 对接 PLC 实战:西门子 PLC 与永宏 PLC 通讯方式全面对比
java·开发语言·python
吴声子夜歌17 小时前
Java数据结构与算法——数论问题
java·开发语言
这就是佬们吗17 小时前
Windows 的 CMD 网络环境:解决终端无法联网与更新的终极指南
java·windows·git·python·spring·maven