![](/img/trans.png)
[英]Eclipse launch configuration is missing when exporting a Spring boot project to a runnable jar file
[英]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.