我有一个简单的 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/