maven - 尝试执行 fat jar 时出现 "no main manifest attribute"

标签 maven gradle spring-boot

我有一个简单的 spring-boot 微服务项目,我正在尝试将其部署到我的 Maven 存储库。

当我通过创建 jar 文件时

gradlew build

我可以用以下命令执行我的 fat jar

java -jar build/libs/tws-0.1.1-SNAPSHOT.jar

但是,当我通过 uploadArchives 将 jar 上传到神器时,这是我的 MANIFEST.MF 的内容:

Manifest-Version: 1.0

这里显然出了问题,当我下载 Artifact 并尝试执行它时,我收到错误“没有主 list 属性”。

当我查看uploadArchives的调试日志时,我可以看到jar被重建了,可能是gradle的spring boot插件在这个过程中不知何故短路了。

最佳答案

查看了gradle uploadArchives和gradle build的调试日志,发现上传文件时重新生成jar后没有调用bootRepackage。

这与 spring-boot gradle 插件中的这个问题有关,并且 bootRepackage 没有与 jar 任务正确集成:

https://github.com/spring-projects/spring-boot/issues/1113

我只需在我的 gradle 脚本中添加以下内容:

uploadArchives.dependsOn bootRepackage

关于maven - 尝试执行 fat jar 时出现 "no main manifest attribute",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24695701/

相关文章:

java - Hibernate 6 Left Join 集合的最新成员

java - 部署maven项目到tomcat

maven-2 - 与 Maven 版本 :display-dependency-updates? 对应的 Ivy 是什么

java - 如何在Gradle中禁止Spotbugs stacktrace?

安卓工作室 : A mess of Gradle build versions and compilation errors

vaadin - 如何使用gradle构建Vaadin项目?

java - 无法评估 Jackson 反序列化

java - 有没有办法将输入从文件重定向到 Netbeans 中的标准输入?

java - 库未加载到可执行 jar 中

spring-boot - Thymeleaf修改并发布当前对象