使用Maven做为项目jar包依赖的管理,经常会遇到命令行启动,笔者也是哥菜鸟,在作微服务,以及服务器端开发的过程当中,经常会遇到项目的启动须要使用main方法,笔者潜心的研究了不少博客,发现大多写的都是很零散,没有设计到应用场景,这里打算我的总结一下,一方面做为本身的学习笔记,另外一方面做为你们的技术分享java
这里是我写好的一个项目的启动脚本,这里须要注意几个地方linux
1:wins的编辑器,换行符是\r\n,而linux的换行符是\n,因此在咱们编辑好了.sh的启动脚本后,会发如今linux上启动会出现 {\r 不是内部命令,xxxx行脚本出错,这里做为开发者必定要注意,那么,怎么解决呢,使用notePad++打开。选择----》视图-----》符号显示----------》显示全部符号shell
而后打开查找替换以下服务器
替换完成后。显示以下:app
对比第一张图显示,换行符是否是不同了呢?maven
下面讲解一下,启动脚本的一些参数,和启动命令编辑器
SERVER=/usr/local/netty/mqtt 这里是咱们打包的jar包的存放路径微服务
echo 控制台输出的提示符,就像咱们的Syste.out.println()学习
JAVA_HOME JDK安装路径spa
cd 切换目录
classPath jar包存放目录
nohup linux执行命令
java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start & java虚拟机启动main方法命令
注释:java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start 也能够单独的做为mian方法的启动命令,只是这种启动方式,不是以进程的方式启动,当咱们关闭控制台的时候进程也就关闭了,启动的进程也随之关闭,程序就不继续运行了。
下面咱们来讲明一下,Maven工程的打包方式,如上所述,maven工程必然会引用不少其余的jar包依赖,这个时候咱们须要把第三方的jar包引用同时打包到咱们的工程里面,这方便Mavne已经作好了插件
经常使用的插件maven-assembly-plugin,这个普及度比较高。
咱们在pom.xml中添加以下代码
咱们对开发完成的项目进行maven打包
Run后看到以下提示信息
BUILD SUCCESS说明打包成功,找到打包好的目录,看到出现了两个jar包,咱们反编译去看看jar包的内容
反编译结果以下,发现第一个包没有jar包依赖
查看第二个包,以下包括咱们的配置文件,第三方jar包都被打包进来了。
咱们在注意看,在jar包中有一个MANIFEST.MF的文件,发现这个文件里路了咱们打包好的jar包的配置信息,就至关于说明书同样。
咱们在注意看上面说到的打包插件中有这样一行带代码
在mainClass标签中制定咱们的jar包main方法,在期内添加main方法
而后咱们从新打包,反编译第二个jar包
多了main方法,这样咱们就制定jar包的启动窗口。至此打包完成
在linux 咱们还要使用 chmod a+x startup.sh 把编辑好的脚本添加到linux的北部shell启动脚本中。
而后执行 ./startup.sh ,大功告成。