Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包

admin2024-06-01  17

目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了;

但在有些场景下,比如部署到外部的服务器的时候,客户方指定要以tomcat的形式启动服务的时候,即需要由服务提供方提供一个war包的时候,该怎么办呢?

一开始没有查找资料,自己差点准备使用传统的ssm框架改造服务的,后来思考和参考相关资料后,发现只需要挤出简单的配置和改造就可以做到,下面是记载将springboot项目改造打包成war的流程,算是一个简单的参考:

1、pom文件添加如些依赖,

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>

这个依赖主要是用于在和jsp进行整合的使用,可酌情添加

2、排除springboot内置的tomcat干扰

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

有人说也可以添加一个tomcat的依赖,这种方式也许是可以的,但是我没有尝试,大多数推荐的还是上面一种,即排除掉内置的tomcat,

org.springframework.boot spring-boot-starter-tomcat provided

3、改造启动类

改造之前:

@SpringBootApplication
public class MainApp {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }
}

改造之后:

@SpringBootApplication
public class MainApp extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MainApp.class);
    }
}

这种改造方式也是官方比较推荐的方法

4、pom文件中不要忘了maven编译插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

当然,在生成环境下,这里可以做更加精细的配置,

5、如果在idea的环境下,依次执行窗口里的 clean ,install即可,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_tomcat,第1张

执行完毕后,可以看到war包已经生成了,默认是在target目录下,位置可以在pom文件中进行配置,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_tomcat_02,第2张

6、使用tomcat进行部署启动,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_spring_03,第3张

可以自己指定启动端口和访问的路径,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_spring_04,第4张

然后启动tomcat,看起来仍然像是springboot的启动界面,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_ide_05,第5张

为了验证,我们访问一下项目里面的接口,这里访问我们的swagger,可以看到,已经可以成功访问了,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_spring_06,第6张

项目启动的时候出现了乱码,如下所示,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_spring_07,第7张

解决办法如下,添加配置,-Dfile.encoding=UTF-8即可,

Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包,Springboot gradle构建方式 idea 打包 ideaspringboot项目打war包_ide_08,第8张

本篇的讲解到此结束,最后感谢观看!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!