为 Spring Boot 应用程序生成战争
Posted
技术标签:
【中文标题】为 Spring Boot 应用程序生成战争【英文标题】:Generating war for spring boot application 【发布时间】:2017-12-21 09:33:07 【问题描述】:我一直在关注 spring 提供的教程,似乎无法理解为什么我的 .war 文件是空的。点击here查看/下载代码。最终目标是下载此文件,构建一个 .war 文件,然后将其部署到我的 tomcat 服务器。我已将以下内容添加到 build.gradle
应用插件:“战争”
但这只会产生一个包含零类文件的战争。
build.gradle
buildscript
repositories
mavenCentral()
dependencies
classpath("org.springframework.boot:spring-boot-gradle
plugin:1.5.3.RELEASE")
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
jar
baseName = 'gs-spring-boot'
version = '0.1.0'
repositories
mavenCentral()
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies
compile("org.springframework.boot:spring-boot-starter-web")
// tag::actuator[]
compile("org.springframework.boot:spring-boot-starter-actuator")
// end::actuator[]
// tag::tests[]
testCompile("org.springframework.boot:spring-boot-starter-test")
// end::tests[]
【问题讨论】:
您是否也尝试过将 jar 块(带有 baseName 和版本)重命名为 war? 是的,但没有区别 【参考方案1】:对于教程代码,你需要做两件事:
用于打包的war插件spring-boot ref:
apply plugin: 'war'
war
baseName = 'gs-spring-boot'
version = '0.1.0'
创建一个可部署的war文件spring-boot ref:
@SpringBootApplication
public class Application extends SpringBootServletInitializer
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
return application.sources(Application.class);
并且还指定提供的tomcat依赖:
dependencies
// …
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
// …
这是我的commit reference 和结果:
【讨论】:
谢谢陈睿!我曾尝试为其提供运行时,但我不知道扩展 SpringBootServletInitializer。以上是关于为 Spring Boot 应用程序生成战争的主要内容,如果未能解决你的问题,请参考以下文章
我如何使用部署在战争 Spring Boot 应用程序中的 mysql jdbc 驱动程序
Tomcat中的spring-boot应用程序战争部署,现有的spring web应用程序失败
如何使用 Spring Boot“bootJar”插件创建 gradle 任务以生成爆炸性战争?