首先,我们把项目打成jar包,通过命令的方式启动项目看看效果。
1.打包
这个简单,直接通过maven的install命令即可;
2.上传到linux指定目录
将打好的jar包,通过ftp工具上传到指定目录。
3.运行jar包
在jar包所在目录我们使用命令:
nohup java -jar xxx.jar &
在我们执行命令之前,我们打开另外一个窗口,找到程序运行生成的日志,使用tail命令打开实时观测:
tail -f nohup.out
我们运行jar包,结果如下:
我们去看看日志:
重点是:没有主清单属性
4.解决问题
这个没有主清单属性到底什么意思呢?为什么会这样呢?我们一一来讲解。
这个原因呢就是缺少了MANIFEST.MF文件,而所谓的主属性清单指的就是该文件中关于项目运行的一些配置。
入口类:
我们这个是springboot的项目,我们知道springboot项目要有入口类的,我们要告诉执行程序的命令,项目启动时启动哪个类作为入口类。
启动类:
有了入口类,这还不行,还要有项目的启动类,也就是springboot自动启动的类,自动加载很多依赖的功能,就是通过这个启动类一步步的加载而来的。
当然还有其他的,我们拿上面两个作为例子,意在说明主属性清单的意义。
我们到项目中一看,果然是没有改文件。这个文件我们在项目中不需要收到添加,打包的时候会自动生成,在我的印象中都没有手动添加过这样的文件。那是什么原因导致没有生成该文件呢?
原来是因为,pom文件中原来的插件由于网络原因依赖总是下载失败,我就把所有插件给删除了。也就是pom文件最下面(一般是放在pom文件最下面)的标签没了:
原来项目中有这样的配置,后来给删除了。就是由于这个原因导致的项目打包后缺少MANIFEST.MF文件。我们加上以上配置之后,清理项目重新打包、上传、运行项目再看看情况。
我们看到这个spring的图像就知道项目启动了。这就是缺少主属性清单的缘故。