SpringBoot部署线上jar或war到Tomcat服务器

简介: SpringBoot部署线上jar或war到Tomcat服务器

war包在服务器上部署

修改pom.xml文件将打包的方式改成war或jar包的形式

默认打包方式为jar  部署jar或war取决于你

<packaging>war</packaging>

排除springboot内嵌tomcat容器依赖(两种方式都可)

SpringBoot在使用时 如需要打包上传服务器  需要我们排除内置tomcat 以防冲突

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope> <!--去掉内嵌tomcat-->
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope> <!--去掉使⽤内嵌tomcat解析jsp-->
        </dependency>

在这里将 scope 属性设置为 provided,这样在最终形成的 WAR 中不会包含这个 JAR 包,因为 Tomcat 或 Jetty 等服务器在运行时将会提供相关的 API 类

pom.xml添加 spring boot提供的maven打包插件

 <build>
        <plugins>
            <!-- spring boot提供的maven打包插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- 指定skipTests为true,跳过单测-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
            <!-- 指定JDK版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

此依赖为启动器的主要作用是提供Web开发场景所需的底层所有依赖  

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.9.RELEASE</version>
        </dependency>

此版本 1.5.9.RELEASE  支持Tomcat 7

配置启动类

我们平常用main方法启动的方式,都有一个App的启动类,代码如下:

@ServletComponentScan
@SpringBootApplication(scanBasePackages = {"com.lt.crm", "com.lt.crm.rest.annotation",
        "com.lt.crm.mdd.runtime", "com.lt.crm.core.auditlog.advice"})
@EnableCaching
public class StoreroomApplication {
    public static void main(String[] args) {
        SpringApplication.run(StoreroomApplication.class, args);
    }

我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:


修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法


package com.lt.crm;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@MapperScan("com.lt.crm")
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder   
        configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的 项目启动类
        return builder.sources(StoreroomApplication.class);
    }
}

使用mvn命令行打包和运行

ea02778102e24b0cb70af2aef5a012fc.png

打包完成会在 target 目录下生成:项目名+版本号.war文件,拷贝到 tomcat 服务器中启动即可


1.  通过idea工具 可以指向我们本地的tomcat 下的webapps 找到我们的项目 拷贝到服务器tomcat


2.  也可以 maven 命令   第一步:clean 第二步:install 第三步:package   然后找到我们项目 会在 target 目录下生成:项目名+版本号.war或jar文件(生成的 war或jar 取决于pom.xml设置的打包方式), 拷贝到 tomcat 服务器中启动即可   (拷贝项目+版本号.war 放到webapps,  启动tomcat,即可自动解压部署)


jar包在服务器上部署

如果你想用jar启动 可以直接修改pom.xml 默认也是为jar 的打包方式

<packaging>jar</packaging>

打包完成会在 target 目录下生成:项目名+版本号.jar文件 拷贝


b6822c36296342faa8db2ff150a3e675.png

黏贴项目名+版本号.jar文件  放到webapps

dd0bd8c6ec2d4e86a2960c62f2ff6d92.png


cmd命令 进入webapps目录下    执行命令 java  -jar 你的项目名称.jar    回车


c6b535f08d72419e930d4f5901d20cfd.png

启动成功 访问你的地址

24a6aa08839143f3a6c6247575a88f97.png

解决jar冲突 ?   又如何排除呢?

idea Terminal 控制台中输入 命令: mvn dependency:tree  查看jar版本及依赖关系

命令行:  mvn dependency:tree

661b6cb875eb44d9b86f2a7bb86ef01a.png

pom.xml 添加要排除的jar

        <!--Redis相关依赖 (需要配合 commons-pool2 对象池依赖使用)-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.1.3.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


目录
相关文章
|
3天前
|
弹性计算 数据安全/隐私保护
【畅玩雾锁王国】阿里云雾锁王国服务器手动部署教程
想要部署属于自己的雾锁王国服务器(Dedicated Server),您首先需要拥有一台服务器,服务器是雾锁王国运行的基础。部署完成后,您和您的朋友便可以登入专属的游戏服进行体验。使用云服务器搭建雾锁王国服务器,便可以让您与您的朋友在一个相对独立且私密的空间中进行游戏,确保获得更加畅快的游戏体验。
33 0
|
3天前
|
弹性计算 Ubuntu Linux
2024年阿里云10秒自动完成Palworld/幻兽帕鲁游戏服务器部署教程
2024年阿里云10秒自动完成Palworld/幻兽帕鲁游戏服务器部署教程。阿里云服务器搭建帕鲁服务器游戏,服务器稳定无卡顿,先下载SteamCMD,并运行;然后下载Palserver,修改服务ini配置,启动PalServer,进入游戏服务器。今天分享阿里云创建幻兽帕鲁服务器教程。
|
3天前
|
弹性计算 Ubuntu Linux
【3秒极速开服】Palworld/幻兽帕鲁服务器全自动部署极简教程(新手推荐)
本文将为您提供极简部署幻兽帕鲁专属服务器(Dedicated Server)的指引,「仅需轻点三次鼠标,3秒轻松开服」,和自己的朋友一起开心“抓帕鲁”。在帕鲁的世界中,与神奇的生物共度悠闲时光是一种无与伦比的乐趣。然而,有时官方服务器的不稳定性可能会给游戏体验带来延迟和卡顿。为了告别这些问题,部署自己的幻兽帕鲁服务器成为了一个不错的选择。通过搭建专属的游戏服务器(Dedicated Server),和小伙伴们获得一个专属的服务空间,获得顺畅流畅的游戏体验。
31 0
|
3天前
|
弹性计算 数据安全/隐私保护
【雾锁王国/Enshrouded】阿里云服务器部署雾锁王国/Enshrouded联机服务教程
【雾锁王国/Enshrouded】阿里云服务器部署雾锁王国/Enshrouded联机服务教程。
18 1
|
3天前
|
弹性计算 数据安全/隐私保护
2024年《雾锁王国/Enshrouded》服务器部署启动全攻略:保姆级教程,轻松上手!
2024年《雾锁王国/Enshrouded》服务器部署启动教程:保姆级指导,让你轻松搭建私人游戏世界!本文将为您提供极简部署雾锁王国服务器的指引,「仅需轻点三次鼠标,即可完成开服」,和自己的朋友一起畅玩雾锁王国。雾锁王国(Enshrouded)作为一款热门多人在线游戏,为了给玩家提供稳定、流畅的联机体验,阿里云提供了高效便捷的快速部署解决方案,本文将为大家分享阿里云一键部署雾锁王国联机服务器详细教程。
|
3天前
|
弹性计算 运维 数据安全/隐私保护
2024《雾锁王国》服务器一键部署教程,不需要任何技术!
2024《雾锁王国》服务器一键部署教程,不需要任何技术!阿里云雾锁王国服务器搭建教程是基于计算巢服务,3分钟即可成功创建Enshrouded游戏服务器,阿里云8核32G雾锁王国专用游戏服务器90元1个月、271元3个月,阿里云百科亲自整理雾锁王国服务器详细搭建教程,零基础不需要技术一键部署
|
5天前
|
Java Docker 容器
docker部署springboot指定yml文件
docker部署springboot指定yml文件
7 0
|
5天前
|
Java 关系型数据库 MySQL
docker 部署springboot项目,连接mysql容器
docker 部署springboot项目,连接mysql容器
14 0
|
6天前
|
弹性计算 Ubuntu Linux
【幻兽帕鲁/Palworld】2024年新手在阿里云服务器上部署幻兽帕鲁/Palworld联机服务器攻略
【幻兽帕鲁/Palworld】2024年新手在阿里云服务器上部署幻兽帕鲁/Palworld联机服务器攻略。本文将详细介绍如何在阿里云服务器上部署幻兽帕鲁联机服务器,新手小白也能轻松搭建并管理自己的游戏环境。
|
6天前
|
弹性计算 Ubuntu Linux
【幻兽帕鲁/Palworld搭建教程】10秒钟快速在阿里云上部署幻兽帕鲁/Palworld服务器教程
【幻兽帕鲁/Palworld搭建教程】10秒钟快速在阿里云上部署幻兽帕鲁/Palworld服务器教程。如何快速在阿里云上部署幻兽帕鲁Palworld服务器?部署幻兽帕鲁服务器(Dedicated Server)您可以选择阿里云服务器作为游戏服务器,并参考下面的教程,仅需3~5分钟即可一键部署幻兽帕鲁专属服务器。

相关产品

  • 云迁移中心