首页 > 其他分享 >SrpingBoot项目部署(jar包+war包)

SrpingBoot项目部署(jar包+war包)

时间:2024-02-22 14:22:34浏览次数:27  
标签:tomcat jar boot SrpingBoot springframework org war

一、打成jar包

以jar包的方式启动,使用sping boot内置的tomcat运行。只要服务器上配置了jdk1.8及以上就可以运行项目,不需要外置tomcat。

1.1 Idea打包

image

1.2 将jar放到任意目录,cmd运行下面命令即可

java -jar take.jar
若jar包名太长,输入java -jar 后 使用tab来选择jar包

二、打成war包

传统的部署方式:将项目打成war包,放在tomcat的webapps目录下面,启动tomcat,即可访问。

2.1 入口类继承SpringBootServletInitializer重写configure方法

package com.aying.takeaway;

import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Slf4j
@MapperScan("com.aying.takeaway.mapper")
@ServletComponentScan
@SpringBootApplication
@EnableTransactionManagement
public class TakeawayApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(TakeawayApplication.class, args);
        log.info("reggie=============>启动成功");
    }

    // 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署项目。
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(TakeawayApplication.class);
    }
}

2.2 配置pom.xml

先让IDEA知道你这次要配war包

	<packaging>war</packaging>

排除内置tomcat的jar包,防止打包之后与外置Tomcat jar包冲突,导致项目启动失败

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

排除javax.servlet。由于SpringBootServletInitializer需要依赖 javax.servlet,而内置的tomcat-embed-jasper下面的tomcat-embed-core中就有这个javax.servlet,所以将其排除,将其范围设置为provided,最终打好的war里面就不会有servlet-api这个jar,这样就不会跟外置tomcat本身的冲突了。

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

修改打成的包名(可选)

    <build>
        <!-- 打成的包名称-->
        <finalName>take</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.14</version>
            </plugin>
        </plugins>
    </build>

2.3 Idea打包

image

2.4 配置外置tomcat

将项目打成war包,放在外置tomcat的webapps目录下面,然后修改conf/server.xml配置文件,在Host标签内添加Context设置,docBase属性填写war文件名称,配置如下:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">    
    <Context path="" docBase="take" debug="0" privileged="true" reloadable="true" />
    <!--
    其他代码
    -->
</Host>

2.5 启动外置tomcat并访问网站

运行外置tomcat安装目录下的bin/startup.bat
浏览器输入localhost:8080/,进行访问

标签:tomcat,jar,boot,SrpingBoot,springframework,org,war
From: https://www.cnblogs.com/Aying216/p/18027149

相关文章

  • 读论文-序列感知推荐系统(Sequence-Aware Recommender Systems)
    前言今天读的论文为一篇于2018年发表在(ACMcomputingsurveys(CSUR))的论文,这篇文章主要讲述了序列感知推荐系统(Sequence-AwareRecommenderSystems)的研究和应用。文章首先介绍了推荐系统在实际中的应用背景,然后指出了传统推荐系统在处理用户行为序列信息方面的局限性。接着,文......
  • idea的Java项目打成jar包并服务器部署运行
    idea的Java项目打成jar包并服务器部署运行文章目录一、idea对Java项目打jar包二、上传jar包到服务器运行一、idea对Java项目打jar包1.File—>ProjectStructure---->Artifacts2.点击+号选择JAR,再选择第二个3.出现这个框,第一个Module是你最后jar包的名字,第二个是Ma......
  • docker 手动安装部署jar包
    创建Dockerfile文件例:FROMjdk:11MAINTAINERtfinfoADDems-basic.jar/ems-gb.jarENTRYPOINT["java","-XX:+UseG1GC","-XX:+TieredCompilation","-Dspring.profiles.active=gb-dev-mysql","-Dspring.group=EMS_GB_GROUP"......
  • 如何使用ssh连接VMWare中的虚拟机
    一、VMWare虚拟机的三种接入模式VMware提供的三种网络模式分别为:桥接模式(Bridge):在这种模式下,虚拟机通过连接到虚拟机交换机,利用虚拟网桥将虚拟机的网络连接到主机的网卡。这种模式下,虚拟机拥有独立的IP地址,并且可以在内部网络中与其他主机进行互相访问。此外,虚拟机也可以......
  • VMWare的虚拟网络编辑器
    一、VMWare的虚拟网络编辑器功能VMware的虚拟网络编辑器(VirtualNetworkEditor)是一个工具,用于管理和配置VMware虚拟网络适配器和网络设置。通过虚拟网络编辑器,用户可以对虚拟网络进行高级配置,包括网络适配器类型、IP地址分配、子网设置、端口映射等。以下是虚拟网络编辑器的......
  • springboot jar 快速启停脚本
    Window启动@echooffstartjavaw-jar-Dfile.encoding=UTF-8-Dlogging.config=D:\deploytest\logback-spring.xmlD:\deploytest\gateway-server-1.0.0.jarecho"gatewaysuccess----"startjavaw-jar-Dfile.encoding=UTF-8-Dlogging.config=D:\de......
  • %C/jenkins/war/META-INF/MANIFEST.MF (No such file or directory)
     centos7部署jenkins时出现的问题,目前只有stackworkflow有这个问题讨论,但是最后跟当前问题不适配,所以做下记录: 解放方案是更新%C目录权限找到%C目录,一般在JENKINS_HOME目录下,如/var/lib/jenkins修改权限chown-Rjenkins:jenkins/var/lib/jenkins/%C如果更改了JE......
  • VMware vsphere 8 虚拟机安装Truenas core 13运行内存占满报警
    使用过Truenas的朋友都知道,在共享运行了一段时间之后,由于Truenas的内存缓存机制,导致系统显示Truenas虚拟机内存已用满,然后报警。首先可以确定,在Truenas系统中,系统内存缓存满并没有任何问题,但是在VMware的管理中并不了解Truenas的运行机制,这里的报警是一定要解决的,现在思路有两条......
  • 在idea中maven项目打包jar文件
    1.在maven工程配置pom.xml文件2.使用maven-assembly-plugin打包在maven选项栏找到项目->Plugins->assembly->点击assembly:assembly执行 如果找不到assembly选项需要检查一下你的Maven配置。 执行成功如下图3.使用maven-assembly-plugin打包是比较推荐的方式该打......
  • 手动将一个java程序打包成jar包
    1.目录结构新建三个目录:bin,META-INF,src src目录下存放源码 META-INF目录下存放MANIFEST.MF bin目录下存放.class文件 2.编译源码javac-dbinsrc/DESUtil.java 3.在META-INF目录下新建MANIFEST.MF文件Manifest-Version:1.0Main-Class:DESUtilClass-......