Springboot+thymeleaf的项目打包成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/目录下

修改完之后,进行之前的步骤
登陆成功

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

被折叠的 条评论
为什么被折叠?



