我有一个用gradle构建的多模块项目。有一个用spring构建的Web应用程序。现在我想为它添加spring-boot支持。
我想要实现的是我想用Spring-boot方式直接运行应用程序&public;来自' public static void main'我在调试时的方法,并在用gradle构建它时创建功能war文件。
但是现在当我开始弹簧启动工作时,由gradle构建的战争无法工作,或者当我进行战争工作时,弹簧启动方式不会起作用。
我使用Traditional deployment的指令构建了功能性war文件,这将导致spring-boot的原始方式失败以启动应用程序。
我有几个想法,包括创建两个gradle构建脚本,但我想知道是否可以在不添加其他构建脚本文件的情况下完成这两个目标。
答案 0 :(得分:0)
确保您的gradle将其构建为战争。
apply plugin: 'war'
标记您提供的容器依赖关系
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
使用org.springframework.boot.web.support.SpringBootServletInitializer扩展你的@SpringBootApplication主类
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
这将生成一个war,它通过servlet监听器初始化Spring Boot上下文。此战争可以直接部署到任何servlet容器。