繁体   English   中英

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

[英]Exporting Spring Boot application as JAR file in eclipse

我在 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.

我的public static void main位于Application.java ,带有@SpringBootApplication注释。

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

我做错了什么?

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

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

这是一个单行命令,在 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/您的项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM