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

时间:2016-05-03 23:30:12

标签: java eclipse spring rest maven

我在Eclipse中使用Spring STS来创建一个简单的基于Web的弹簧启动项目。我可以在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依赖项进行了一百次双重检查。

我做错了什么?

2 个答案:

答案 0 :(得分:15)

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

首先,确保you have the repackage goal included in your build setup,然后使用Maven package目标。最简单的方法是从命令行运行mvn package(您可能需要为您的操作系统安装Maven CLI软件包);您还可以右键单击Eclipse中的POM和“Run As”以从Eclipse中执行特定的Maven操作。

答案 1 :(得分:1)

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