从Spring创建war文件:在Eclipse中启动项目

问题描述 投票:3回答:1

我是Spring Boot的新手,我已经完成了一个在我的localhost上运行良好的应用程序。因为我被告知要在我的localhost之外部署它,例如webbhotel或simular,我需要将项目导出为war文件而不是jar文件。

UPDATE!我将项目作为Spring Initializr中生成的Spring项目运行,并使用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>

我是否需要添加spring-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-file时,Eclipse无法找到我的项目。如果我尝试导出Java> JAR FILE,它可以找到它,但如果我尝试Web> WAR FILE则不会

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

java eclipse maven spring-boot war
1个回答
9
投票

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

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

enter image description here

在pom.xml中使用以下配置

<packaging>war</packaging>

为项目配置Build Path并选择JDK

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

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

enter image description here

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

您可以使用主机名,后跟端口和应用名称来访问该应用。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.