SpringBoot(28) - SpringBoot Maven插件(2) - war包

参考:https://docs.spring.io/spring-boot/docs/1.5.17.RELEASE/reference/htmlsingle/#howto-create-a-deployable-war-file

 

生成可部署war文件的第一步是提供SpringBootServletInitializer子类并覆盖其configure方法。 这充分利用了Spring Framework对于Servlet 3.0的支持,并允许你在servlet容器启动时配置应用程序。 通常,改变应用程序主类以扩展SpringBootServletInitializer:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

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

下一步是更新构建配置,以便项目生成war文件而不是jar文件。 如果使用Maven并使用spring-boot-starter-parent(它配置Maven的war插件),修改pom.xml将<packaging>更改为war:

<!-- <packaging>jar</packaging> -->
<packaging>war</packaging>

最后一步是确保嵌入式servlet容器不会干扰将部署war文件的servlet容器。 为此,需要标记所提供的嵌入式servlet容器依赖项。

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

如果正在使用SpringBoot构建工具,则标记所提供的嵌入式servlet容器依赖项将生成一个可执行war文件,其中提供的依赖项打包在lib目录中。 这意味着,除了可部署到servlet容器之外,还可以在命令行上使用java -jar运行应用程序。 

 

记录打包步骤:

1. 修改pom.xml

(1)打包方式jar修改为war

<!-- <packaging>jar</packaging> -->
<packaging>war</packaging>

(2)使用外置的tomcat相关jar

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

(3)maven插件

<finalName/>标签用于指定war包名称,默认命名规则:<groupId>-<artifactId>.war

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

(4) 跳过测试

<properties>
    ...
    <!-- maven方式跳过maven test, 等同$ mvn package -Dmaven.test.skip=true -->
    <!-- <maven.test.skip>true</maven.test.skip> -->
    <!-- surefire plugin方式跳过maven test,等同$ mvn package -DskipTests -->
    <skipTests>true</skipTests>
</properties>

 

2. 新建类ServletInitializer

该类继承SpringBootServletInitializer,与启动类放置同一级;重写configure方法,因为需要类似于web.xml配置方式来启动Spring上下文。

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // SpringBoot启动类
        return builder.sources(Application.class);
    }
    
}

 

3. 修改启动类Application

@ServletComponentScan注解用于扫描Servlet、Filter等,否则不起作用

@ServletComponentScan("com.momo.springboot.config.servlet")
@SpringBootApplication
public class Application {

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

 

4.打包

idea点击package(在生命周期的package阶段执行插件的目标),在项目/target目录下可以找到打包好的war包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值