我使用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) 并得到以下结果:
有趣的是,我能够在Eclipse中生成可执行jar,它具有单独的Runnable JAR Export过程。
我是IntelliJ和Gradle的新手。以前有人看过这种行为吗?在IntelliJ中我可能做错了什么想法?如果有人需要,我会将我的Hello World项目压缩。
答案 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