我是 Spring Boot 的新手,我已经完成了一个在我的本地主机上运行良好的应用程序。正如我被告知要将它部署在我的本地主机之外,例如 webbhotel 或 simular,我需要将项目导出为 war 文件而不是 jar 文件。
更新!!我将项目作为在 Spring Initialzr 中生成的 Springproject 运行,并使用 Eclipse 作为 IDE。
在 Eclipse 中,我遵循了这些步骤
<packaging>war</packaging>
和
<dependencies>
<!-- … -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- … -->
</dependencies>
来自 Spring Boot 参考 页面 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file
在我的项目中我使用
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
我是否需要添加 sprinng-boot-starter-tomcat 依赖项并添加 provided 以及 tomcat-embed-jasper 以便我的依赖项是这样的?
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
当我尝试在 Eclipse 中导出到 war 文件时,Eclipse 找不到我的项目。如果我尝试导出 Java>JAR FILE,它可以找到它,但如果我尝试导出 Web>WAR FILE,它就找不到
有谁知道我做错了什么以及是否需要导出到 WAR 文件以部署到外部服务器?
原文由 bajen micke 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要在 @SpringBootApplication 中扩展 ****SpringBootServletInitializer****
您不需要为 war 文件生成添加 ****sprinng-boot-starter-tomcat**** 依赖项
在 pom.xml 中使用以下配置
为您的项目配置构建路径并选择 JDK
右键单击项目> Run As > Maven Install
它将在目标文件夹中生成 war 文件。
复制这场战争并部署到任何网络/应用程序服务器(我已将其重命名为 demo.war)。
您可以使用您的主机名后跟端口和应用程序名称来访问该应用程序。