在 eclipse 中将 Spring Boot 应用程序导出为 JAR 文件

2022-09-03 17:05:49

我正在使用Eclipse中的Spring STS来创建一个简单的基于Web的spring boot项目。我可以在Eclipse中很好地运行它,但是当我尝试将其导出为JAR文件时,我得到:

rg.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

My 位于 中,带有注释。public static void mainApplication.java@SpringBootApplication

我已经仔细检查了所有Maven依赖项一百次。

我做错了什么?


答案 1

最有可能的是,您正在使用内置的 Eclipse 导出器来生成 jar,其中仅包含该项目中实际生成的目标文件。为了有一个“胖”(独立可执行)jar,你需要使用Spring Boot Maven或Gradle插件来“重新包装”jar。

首先,请确保在构建设置中包含重新打包目标,然后使用 Maven 目标。最简单的方法是从命令行运行(您可能需要为您的操作系统安装Maven CLI软件包);您还可以右键单击 Eclipse 中的 POM 和“运行方式”,以从 Eclipse 中执行特定的 Maven 操作。packagemvn package


答案 2

它是一个单行命令,位于窗口 7/10 计算机上,带有指向项目文件夹(在项目工作区内)的命令提示符。我不做Eclipse IDE POM maven目标,但你也可以在那里做maven目标。在窗口机上,我更喜欢cmd.exe导出和运行。

mvnw clean package

基于 unix 内核

./mvnw clean package

您必须进入工作区,而不是项目根文件夹。您将看到一个 maven 包装器 mvnw,这样您就不需要安装 maven,同一级别的 .mvn 文件夹为此提供了必要的 jar。对于项目

D:\workspace\Zuteller Workspace\zusteller>mvnw clean package

它将在同一级别的目标文件夹中创建。zusteller-0.0.1-SNAPSHOT.jar

D:\workspace\Zuteller Workspace\zusteller>java -jar target\zusteller-0.0.1-SNAPSHOT.jar

您可以运行自包含的应用程序(嵌入式Tomcat)并在localhost:8080 /您的项目上访问


推荐