无法从Spring Boot,Gradle和IntelliJ-Idea生成可执行jar

时间:2016-08-23 21:16:29

标签: intellij-idea gradle spring-boot

我使用IntelliJ-Idea和Gradle作为构建引擎创建了一个Spring Boot微服务。我没有对最初的Spring Boot配置进行任何更改。我也没有对提供的 build.gradle 文件进行任何修改。我通过IntelliJ-Idea使用 starter.spring.io 构建了应用程序,并具有以下依赖项:

compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-devtools')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('org.postgresql:postgresql')
testCompile('org.springframework.boot:spring-boot-starter-test')

该应用程序当前包含12个类和2个接口,是一个Web服务提供者。它在我的系统上运行正常但是当我使用Gradle构建时,Manifest.MF不包含 Main-Class 条目。

我创建了一个非常简单的Hello World应用程序,并尝试了几种IDE和构建工具的组合(Gradle和Maven) 并得到以下结果:

enter image description here

有趣的是,我能够在Eclipse中生成可执行jar,它具有单独的Runnable JAR Export过程。

我是IntelliJ和Gradle的新手。以前有人看过这种行为吗?在IntelliJ中我可能做错了什么想法?如果有人需要,我会将我的Hello World项目压缩。

2 个答案:

答案 0 :(得分:1)

我接受了 M的建议。 Denium ,我从命令行进行了Gradle构建。创建的jar格式正确格式化为可执行文件。一切都像魅力一样。事实上,Main-Class是一个名为 org.springframework.boot.loader.JarLauncher 的Spring Boot类,我的应用程序的主类位于名为 Start-Class 的属性中。 IDE完全错过了这个。

答案 1 :(得分:0)

看起来你需要为gradle包含spring boot插件 - org.springframework.boot:spring-boot-gradle-plugin

gradle section of the getting started guide

中的更多详细信息