我对Sping Boot 很陌生,我已经完成了一个在我的本地主机上运行良好的应用程序。因为我被告知要在我的本地主机之外部署它,例如在webbhotel或simulal上,我需要将项目导出为war文件,而不是jar文件。
更新!!我将该项目作为SpringInitialzr中生成的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>
来自Sping 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>
我是否需要添加spring-boot-starter-tomcat依赖项,并添加provided以及tomcat-embed-碧玉,以便我的依赖项将是这样的?
<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文件以部署到外部服务器?
7条答案
按热度按时间2exbekwf1#
您需要在@SpringBootApplication中扩展SpringBootServletInitializer
您不需要为生成war文件添加sprinng-boot-starter-tomcat依赖项
在pom.xml中使用以下配置
配置项目的生成路径并选择JDK
右键单击项目〉运行方式〉Maven安装
它将在目标文件夹中生成war文件。
复制这个war并部署到任何web/应用服务器(我已经将它重命名为demo.war)。
您可以使用主机名后跟端口和应用程序名称来访问应用程序。
oug3syen2#
要在STS(Spring工具套件)中生成WAR文件:运行方式-〉Maven安装
yrefmtwq3#
在
pom.xml
中更改为<packaging>war</packaging>
后。使用以下命令:
mvn package
omtl5h9j4#
您也可以通过选择菜单
File -> Export -> Web -> War file
继续操作pw9qyyiw5#
我通过以下步骤生成了一个war文件:
1.添加上述依赖性。
1.打开命令提示符。
cd
到您的项目目录中。1.运行以下命令:
mvn clean install
.然后在目标目录中生成一个war文件。
ssm49v7z6#
如果您使用的是maven,您可以添加标记来指定我们想要创建的类型- jar或war。然后在sts中触发一个maven构建并指定目标- clean install并指定您想要为构建运行的线程数。如果您想要跳过测试用例,您可以给予skipTest =true,或者如果您想要从命令提示符运行,您可以指定-Dmaven.test.skip=true。完成后,war文件将在目标文件夹下生成。(除非我们指定特定的部署文件夹)
wkftcu5l7#
步骤1:-通过扩展SpringBootServletInitializer创建ServletInitializer文件
步骤2:-在主类中使用@SpringBootApplication
步骤3:-在pom.xml中将类型打包为war
步骤4:-给予构建文件名,如下所示
步骤5:-添加外部tomcat依赖项作为提供的作用域
注意:-为了便于参考,我添加了完整的pom.xml