欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Intellij IDEA - Spring boot 打包(jar & war)

程序员文章站 2022-03-30 16:39:24
...

Intellij IDEA - Spring boot 打包(jar & war)

本菜鸟最近在使用spring boot 开发项目,spring boot确认比本菜鸟前面用的框架轻
便很多,很适合自己开发dome或一些轻量级的项目;但是在部署打包的时候本菜鸟遇到
了问题,因为部署环境是tomcat,而不是直接运行jar包。
so 现在来讲一下spring boot打包的问题:
  • jar包(这种是最简单的)
  • war包
  • 开发工具 Intellij IDEA

jar包

spring boot打成jar包很简单,只要确定packaging是jar,可以直接导出jar包:
Intellij IDEA - Spring boot 打包(jar & war)
那么在你项目文件夹中的target目录下可以直接找到导出的jar包,这个jar包是可以直接运行的
Intellij IDEA - Spring boot 打包(jar & war)

导出jar包的就讲这么多,主要还是导出war包-。-

war包

导出war包有两种情况
第一种情况. 在创建项目的时候没有注意选择packaging类型,选择了默认的Jar:
Intellij IDEA - Spring boot 打包(jar & war)

那么在打包的时候,需要处理三个地方:

第一步 修改pom.xml中的packaging类型为war:

    <groupId>com.example.greenhand</groupId>
    <artifactId>vuepractice</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    **<packaging>war</packaging>**
    <name>vuepractice</name>

第二步 在pom.xml中添加tomcat依赖:
加tomcat依赖有两种方法:
方法一:不用spring-boot内置的tomcat库(此方法不需要考虑tomcat的部署版本,建议使用此方法,并且如果大家注意的话,可以发现在建项目的时候选择的packaging是war类型的话,默认生成的也是此方法)

<!-- war打包使用,无需使用固定版本tomcat,本地启动主方法时注意需要注释此依赖包 -->
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
            <!--<scope>provided</scope>-->
        <!--</dependency>-->

方法二:用spring-boot内置的tomcat库, 并指定你要部署到Tomcat的版本
(当部署时如果版本不一致则启动不起来,所以不建议使用这个方法)

<properties>
    <tomcat.version>7.0.69</tomcat.version>
</properties>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-juli</artifactId>
    <version>${tomcat.version}</version>
</dependency>

第三步 需要继承SpringBootServletInitializer 重写启动方法:
下面是一个dome的目录结构,大家可以参考一下:
Intellij IDEA - Spring boot 打包(jar & war)

重写方法代码如下(**Application.class是项目中的主方法):

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(**Application.class);
    }

}

之后导出包的方式和jar导包方式一样
Intellij IDEA - Spring boot 打包(jar & war)

导出的包同样是在target目录下面,此包可以直接部署在tomcat中运行。

第二种情况:大家在新建项目的时候已经确认需要打包成war包,那么新建的时候注意选择packaging的类型,那么不需要以上的所有处理步骤,可以直接导出war包。