从Spring:Eclipse中的引导项目创建war文件

2022-09-03 18:15:24

我对Spring Boot很陌生,我已经完成了一个在我的本地主机上运行良好的应用程序。由于我被告知要将其部署在我的本地主机之外,例如webbhotel或模拟文件,因此我需要将项目导出为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 Referencepage 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 依赖项,并添加提供给它的 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文件,它可以找到它,但如果我尝试Web>WAR文件,它就找不到它

有谁知道我做错了什么,以及是否有必要导出到WAR文件以部署到外部服务器?


答案 1

您需要在@SpringBootApplication中扩展****SpringBootServletInitializer****

您不需要添加 ****sprinng-boot-starter-tomcat**** 依赖项来生成 war 文件

enter image description here

在 pom 中使用下面的配置.xml

<packaging>war</packaging>

为项目配置构建路径,然后选择 JDK

右键单击项目>运行方式> Maven 安装

它将在目标文件夹内生成 war 文件。

enter image description here

复制这场战争并部署到任何Web/应用程序服务器(我已将其重命名为demo.war)。

您可以通过使用主机名后跟端口和应用程序名称来访问应用程序。

enter image description here


答案 2

要在STS(弹簧工具套件)中生成WAR文件:运行>Maven Install


推荐