超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

本文分享了将SpringBoot项目打包成jar包并部署至服务器的实战经验,包括使用Idea进行打包、解决500错误及资源加载问题、处理MANIFEST.MF冲突和修复jar文件损坏等常见难题。


在租了一个服务器之后,首先想到的就是怎么把自己的Springboot项目发布上去,以做到物尽其用,在打包成jar包的时候碰到了很多麻烦,经过查资料后一一解决。

1. 如何使用idea把项目打包

打开自己的idea项目,打开project structure
在这里插入图片描述
正常情况下是下面的情况,一片空白
在这里插入图片描述
点击加号,选择jar,然后选择from modules with dependencies
在这里插入图片描述
进入如下界面,首先Main Class 就是你的主函数了,作为Springboot 项目,我们的主函数自然是xxxxApplication(xxxx是你的命名)
在这里插入图片描述
选择mainclass后面的文件夹选择自己的主函数
在这里插入图片描述
接下来有两个选择分别是
1:把你项目中所使用到的依赖放到最终项目的jar包当中去(最终只形成一个项目名称.jar文件)
2把你项目中使用的依赖jar包一同放到你的项目形成的jar包旁边(并列放置,文件中有多个jar包,并且通过manifest生成一个 MANIFEST.MF文件)
我选择的是第二个选项
在这里插入图片描述
同时选择MANIFEST.MF 文件放置的目录,可选择类似如下目录

在这里插入图片描述
注意!!!一开始idea会默认这样的路径,但是使用该路径在之后运行jar文件的时候会出现一些bug,之后细聊。
在这里插入图片描述
添加好之后样子如下
在这里插入图片描述

接着选择build 下面的build artifacts
在这里插入图片描述
选择build
在这里插入图片描述
接着在自己项目/out/artifacts/目录下会生成一个jar包。

2. 自己idea运行没毛病,打包成jar运行就500无法找到资源(error resolving template)

打开命令行,进入jar包目录,输入java -jar xxxx.jar 命令运行
在这里插入图片描述

在运行jar包的时候,正常运行,然后输入自己的url,发现有的界面正常
在这里插入图片描述

有的界面却报500,无法找到/dashboard/index这个html网页。
在这里插入图片描述
后来发现是这句语句出了问题,这样的写法在idea上运行的时候是没问题的,但是打包成jar包则需要改写成 return" dashboard/index"把前面的斜杠去掉。
在这里插入图片描述

3. java/META-INF/MANIFEST.MF already exists in VFS

在添加jar的时候
在这里插入图片描述

然后出现了这个问题
在这里插入图片描述
这个问题很简单,其实就是之前的MANIFEST.MF文件你没有删除,所以要先删除掉才能创建一个新的。上面提示的是那个文件的目录。

接着按照之前的步骤build artifacts
然后在命令行中进入该目录,接着运行该项目,java -jar xxxx.jar
在这里插入图片描述
建议如果要重新生成jar包,可以选择build artifacts
在这里插入图片描述
然后选择rebuild
在这里插入图片描述

4. Invalid or corrupt jarfile PartyOrg.jar

在运行jar包的时候发现上面Invalid or corrupt jarfile PartyOrg.jar
在这里插入图片描述
在查阅资料之后发现,这是由于一开始在create jar的时候选择的文件夹位置不对,最好不要选择idea默认的xxxx/src/main/java 目录下,然后我选择放在了xxxx(项目名)/out/artifacts/目录下
在这里插入图片描述
修改完之后,进行之前的步骤
登陆成功
在这里插入图片描述
这下三个常见的问题就解决了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值