將基于 Maven 的 Spring Boot 應(yīng)用程序打包為 WAR 文件
要更改使用Spring Initializr或Vaadin Start工具生成的基于Maven的 Spring Boot 應(yīng)用程序中的打包,請(qǐng)?jiān)?pom.xml 文件中進(jìn)行以下更改:
1、修改<packaging>元素如下:
XML:
<packaging>war</packaging>
2. 如果您計(jì)劃部署到與 Apache Tomcat 不同的服務(wù)器,請(qǐng)執(zhí)行以下操作:
a) 將 Servlet API 依賴(lài)項(xiàng)添加到項(xiàng)目中。確保使用與您的項(xiàng)目匹配的版本。例如,在Vaadin應(yīng)用程序的情況下:
XML:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
b)如果您使用的是Spring MVC,spring-boot-starter-tomcat則從 中排除依賴(lài)項(xiàng),或者如果您使用的是Vaadin則從該依賴(lài)項(xiàng)中排除。例如:spring-boot-starter-web dependencyvaadin-spring-boot-starter
XML:
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
<exclusions>
...
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3. 可選:如果您想簡(jiǎn)化 WAR 文件的名稱(chēng)并始終構(gòu)建一個(gè)同名但沒(méi)有版本號(hào)的文件,請(qǐng)?jiān)谠?<build>
?部分添加以下內(nèi)容:
XML:
<finalName>${project.artifactId}</finalName>
4. 通過(guò)運(yùn)行mvn package命令構(gòu)建和打包應(yīng)用程序。如果您使用 Vaadin,請(qǐng)啟用生產(chǎn)配置文件 ( mvn package -P production)。您可以在 Maven 項(xiàng)目?jī)?nèi)的target/目錄中找到 WAR 文件。
將 WAR 文件部署到 Apache Tomcat
要將上一節(jié)中配置的應(yīng)用程序部署到 Apache Tomcat 的本地實(shí)例:
- 從項(xiàng)目網(wǎng)站下載 Apache Tomcat 。確保下載正確的版本,具體取決于您的應(yīng)用程序使用的 Java 和 Servlet API 版本。例如,對(duì)于 Vaadin 應(yīng)用程序,下載 Apache Tomcat 版本 9。
- 提取下載的文件。
- 通過(guò)運(yùn)行可以在Apache Tomcat 安裝目錄內(nèi)的bin/目錄中找到的start.sh或start.bat腳本來(lái)啟動(dòng)服務(wù)器。您可能必須向bin/目錄中的腳本文件添加執(zhí)行權(quán)限。例如,在類(lèi) Unix 操作系統(tǒng)中,運(yùn)行.chmod +x bin/*.sh
- 將 WAR 文件從Maven 項(xiàng)目?jī)?nèi)的target/目錄復(fù)制到Apache Tomcat 安裝目錄內(nèi)的webapps/目錄。
- 該應(yīng)用程序應(yīng)自動(dòng)部署并在http://localhost:8080/your-war-file-name 上提供。如果要部署到上下文的根 ( http://localhost:8080/ ),請(qǐng)使用 ROOT.war 。
將 WAR 文件部署到 Eclipse Jetty
要將先前配置的應(yīng)用程序部署到 Eclipse Jetty 的本地實(shí)例:
- 從項(xiàng)目網(wǎng)站下載 Eclipse Jetty 。確保下載正確的版本,具體取決于您的應(yīng)用程序使用的 Java 和 Servlet API 版本。例如,對(duì)于 Vaadin 應(yīng)用程序,下載 Eclipse Jetty 9。
- 提取下載的文件。
- 如果您下載了 Eclipse Jetty 10,請(qǐng)通過(guò)java -jar start.jar --add-module=server,http,deploy在 Eclipse Jetty 安裝目錄中運(yùn)行來(lái)配置服務(wù)器。
- 通過(guò)在 Eclipse Jetty 安裝目錄內(nèi)的bin/目錄中運(yùn)行start.sh start 來(lái)啟動(dòng)服務(wù)器。您可能必須通過(guò)運(yùn)行來(lái)為bin/目錄中的腳本文件添加執(zhí)行權(quán)限。chmod +x bin/*.sh
- 將 WAR 文件從Maven 項(xiàng)目?jī)?nèi)的target/目錄復(fù)制到Eclipse Jetty 安裝目錄內(nèi)的web apps /目錄。
- 應(yīng)用程序應(yīng)自動(dòng)部署并在此處可用。如果要部署到上下文 root ,請(qǐng)使用 root.war 。