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

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)_第1张图片
那么在你项目文件夹中的target目录下可以直接找到导出的jar包,这个jar包是可以直接运行的
Intellij IDEA - Spring boot 打包(jar & war)_第2张图片

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

war包

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

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

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

    <groupId>com.example.greenhandgroupId>
    <artifactId>vuepracticeartifactId>
    <version>0.0.1-SNAPSHOTversion>
    **<packaging>warpackaging>**
    <name>vuepracticename>

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


        
            
            
            
        

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

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

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

重写方法代码如下(**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)_第5张图片

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

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

你可能感兴趣的:(学习,分享)