idea 编译spring-boot项目为 war包(gradle&maven)


一、构建管理方式

1.使用 Gradle 进行管理:

在 gradle.build 文件中新增apply plugin: war:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.springframework.boot'

2.使用 Maven 进行管理:

需把元素的值从 jar 改为 war。

<packaging>war</packaging>

2.新增类

现在就能生成 WAR 文件了。
但如果 WAR 文件里   没有启用   Spring MVC DispatcherServlet 的 web.xml 文件   或者   Servlet 初始化类,这个 WAR 文件就一无是处

此时就该 Spring Boot 出马了。
它提供的 SpringBootServletInitializer 是一个支持 Spring Boot 的 Spring WebApplicationInitializer 实现。
除了配置 Spring 的 Dispatcher- Servlet,SpringBootServletInitializer 还会在 Spring 应用程序上下文里查找 Filter、 Servlet 或 ServletContextInitializer 类型的 Bean,把它们绑定到 Servlet 容器里。
image.png

image.png

虽然应用程序里还有其他 Spring 配置类,但没有必要在这里把它们全部注册进来。
Application 类上添加了@SpringBootApplication 注解。
这会隐性开启组件扫描,而组件扫 描则会发现并应用其他配置类。

三、构建项目

1.通过控制台构建

现在我们可以构建应用程序了。如果使用 Gradle,你只需调用 build 任务即可:

gradle build

没问题的话,你可以在 build/libs 里看到一个名为   项目名-0.0.1-SNAPSHOT.war 的文件。
对于基于 Maven 的项目,可以使用 package:

mvn package

2.图形操作

使用 Gradle
image.png
maven

image.png


文章作者: 慕书
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 慕书 !
评论
  目录