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


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

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

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

超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
注意!!!一开始idea会默认这样的路径,但是使用该路径在之后运行jar文件的时候会出现一些bug,之后细聊。
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
添加好之后样子如下
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

接着选择build 下面的build artifacts
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
选择build
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
接着在自己项目/out/artifacts/目录下会生成一个jar包。

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

打开命令行,进入jar包目录,输入java -jar xxxx.jar 命令运行
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

在运行jar包的时候,正常运行,然后输入自己的url,发现有的界面正常
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

有的界面却报500,无法找到/dashboard/index这个html网页。
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
后来发现是这句语句出了问题,这样的写法在idea上运行的时候是没问题的,但是打包成jar包则需要改写成 return" dashboard/index"把前面的斜杠去掉。
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

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

在添加jar的时候
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

然后出现了这个问题
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
这个问题很简单,其实就是之前的MANIFEST.MF文件你没有删除,所以要先删除掉才能创建一个新的。上面提示的是那个文件的目录。

接着按照之前的步骤build artifacts
然后在命令行中进入该目录,接着运行该项目,java -jar xxxx.jar
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
建议如果要重新生成jar包,可以选择build artifacts
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!
然后选择rebuild
超详细!把Springboot+thymeleaf的项目打包成jar包走过的坑!

4. Invalid or corrupt jarfile PartyOrg.jar

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