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

一、打成jar包

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

1.1 Idea打包

image

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

java -jar take.jar 或者UTF-8方式启动jar包java -Dfile.encoding=UTF-8 -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/,进行访问

posted @ 2024-02-22 14:17  熬夜大能手  阅读(31)  评论(0编辑  收藏  举报