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