SpringBoot項(xiàng)目打成可運(yùn)行的war包 | 您所在的位置:網(wǎng)站首頁(yè) › 屬雞的人選樓層 › SpringBoot項(xiàng)目打成可運(yùn)行的war包 |
創(chuàng)建可部署的 War 文件
由于 Spring WebFlux 并不嚴(yán)格依賴(lài)于 Servlet API,并且默認(rèn)情況下會(huì)在嵌入式 Reactor Netty 服務(wù)器上部署 applications,因此 WebFlux applications 不支持 War 部署。 生成可部署的 war 文件的第一個(gè) step 是提供SpringBootServletInitializer子類(lèi)并覆蓋其configure方法。這樣做可以使用 Spring Framework 的 Servlet 3.0 支持,并允許您在 servlet 容器啟動(dòng)時(shí)配置 application。通常,您應(yīng)該更新 application 的 main class 以擴(kuò)展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); } }下一個(gè)步驟是更新 build configuration,以便您的項(xiàng)目生成 war 文件而不是 jar 文件。如果您使用 Maven 和spring-boot-starter-parent(為您配置 Maven 的 war 插件),您需要做的就是修改pom.xml以將包裝更改為 war,如下所示: war如果使用 Gradle,則需要修改build.gradle以將 war 插件應(yīng)用于項(xiàng)目,如下所示: apply plugin: 'war'process 中的最后一個(gè)步驟是確保嵌入的 servlet 容器不會(huì)干擾部署 war 文件的 servlet 容器。為此,您需要將嵌入的 servlet 容器依賴(lài)項(xiàng)標(biāo)記為已提供。 如果使用 Maven,則以下 example 將 servlet 容器(在本例中為 Tomcat)標(biāo)記為提供: org.springframework.boot spring-boot-starter-tomcat provided如果使用Spring Boot build 工具,則標(biāo)記嵌入的 servlet 容器依賴(lài)項(xiàng)將提供一個(gè)可執(zhí)行的 war 文件,其中提供的依賴(lài)項(xiàng)打包在lib-provided目錄中。這意味著,除了可部署到 servlet 容器之外,您還可以在命令 line 上使用java -jar運(yùn)行 application。 將 WAR 部署到 WebLogic要將 Spring Boot application 部署到 WebLogic,必須確保 servlet 初始化程序直接實(shí)現(xiàn)WebApplicationInitializer(即使您從已經(jīng)實(shí)現(xiàn)它的 base class 擴(kuò)展)。 WebLogic 的典型初始化程序應(yīng)類(lèi)似于以下 example: import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.web.WebApplicationInitializer; @SpringBootApplication public class MyApplication extends SpringBootServletInitializer implements WebApplicationInitializer { }如果使用 Logback,還需要告訴 WebLogic 更喜歡打包的 version 而不是服務(wù)器的 version。您可以通過(guò)添加包含以下內(nèi)容的WEB-INF/weblogic.xml文件來(lái)執(zhí)行此作: org.slf4j |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |