一篇关于Maven项目的jar包Shell启动脚本
使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都是很零散,没有设计到应用场景,这里打算个人总结一下,一方面作为自己的学习笔记,另一方面作为大家的技术分享
这里是我写好的一个项目的启动脚本,这里需要注意几个地方
1:wins的编辑器,换行符是\r\n,而linux的换行符是\n,所以在我们编辑好了.sh的启动脚本后,会发现在linux上启动会出现 {\r 不是内部命令,xxxx行脚本出错,这里作为开发者一定要注意,那么,怎么解决呢,使用notePad++打开。选择----》视图-----》符号显示----------》显示所有符号
然后打开查找替换如下
替换完成后。显示如下:
对比第一张图显示,换行符是不是不一样了呢?
下面讲解一下,启动脚本的一些参数,和启动命令
SERVER=/usr/local/netty/mqtt 这里是我们打包的jar包的存放路径
echo 控制台输出的提示符,就像我们的Syste.out.println()
JAVA_HOME JDK安装路径
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 ,大功告成。
转载于:https://www.cnblogs.com/zhaieryuan/p/8645335.html
一篇关于Maven项目的jar包Shell启动脚本相关推荐
- jar包自动化启动脚本+开机自启
Jar包自动化启动脚本+开机自启 文章目录 Jar包自动化启动脚本+开机自启 内容概要 脚本编写 1.循环遍历目录 2.判断jar包进程重启 开机自启设置 内容概要 本章节内容主要是基于日常工作需要大 ...
- Windows JAR包的启动脚本
JAR包的启动脚本 多个JAR包同时启动 @echo off echo. echo WebVR START... echo.:: 进入目录文件夹 d: cd D:\JT\java\workspace\ ...
- maven学习(六)——在别的项目中引用通过Maven安装生成的项目的jar包
1.新建HelloFriend项目,同时建立Maven约定的目录结构和pom.xml文件 HelloFriend | --src | -----main | ----------java | ...
- maven打包springboot项目的jar包的时候出现报错There are test failures.
报错信息 There are test failures. Please refer to /Users/2cy/my_idea_project/git_project/wechat-applet-d ...
- IDEA中MAVEN项目打JAR包的简单方法
Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令. 最简单的方法 首先是在 ...
- 【Java Web】Myeclipse下运用maven管理项目jar包
Java Web开发的人都知道经常会为缺少各种jar包而烦恼,经常要去各种地方下载.用maven来管理项目的jar包,就非常方便了,maven会自动帮你下载所需要的各种jar包. 下面就来介绍一下在M ...
- Maven(三):将web项目的war包热部署到远程Tomcat服务器
相关阅读: Maven(一):安装与环境配置.使用Maven搭建web项目 Maven(二):常用命令.依赖管理 Maven(三):将web项目的war包热部署到远程Tomcat服务器 Maven(四 ...
- maven项目的pom文件中各标签理解
本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...
- Maven 手动添加 JAR 包到本地仓库
转载自:http://www.blogjava.net/fancydeepin/archive/2012/06/12/380605.html Maven 手动添加 JAR 包到本地仓库 Maven 确 ...
最新文章
- Sublime text3 快捷方式(windows平台)
- echart饼状图没有数据的时候显示暂无数据_Python数据结构可视化 day 5
- AVAssetExportSession导出MP4视频失败
- Android Studio 约束布局[ConstraintLayout]
- Vim特定行行尾追加
- (八)nodejs循序渐进-事件驱动(进阶篇)
- 6.边缘检测:梯度——梯度计算中滤波器的线性特性的利用_6
- BZOJ4305 数列的GCD
- Java调用MATLAB作图是的ERROR--MWEException
- C语言实验报告(通用)
- Mac下安装激活matlab2017b教程方法
- 老男孩Python全栈视频
- 快手测试开发工程师面试
- matlab单点弦截法求解,弦截法求根c语言
- 35年老程序员个人谈:C语言时代行将落幕
- Linux的基础文件操作1
- 区块链 以太坊 多层调用,获取调用者 msg.sender
- 时间序列的分析及滚动预测代码
- iphone X 屏幕适配
- 飞腾FT2000/4 u-boot/UEFI开发环境搭建
热门文章
- 如何取消JS事件的派发——stopPropagation()
- java 文件上传 jar_JavaWeb 之 使用 commons-fileupload.jar 实现文件上传
- java在程序中加入音频_在任意Java程序中播放音频
- 天津大学计算机考研真题,天津大学计算机科学与技术考研真题
- dim private public static_C++ 强制类型转换操作符 static_cast
- 【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等
- Facebook宕机背后,我们该如何及时发现DNS问题
- 如何画好一张架构图?(内含知识图谱)
- 函数组合的 N 种模式
- 字体设置_Endnote教程|字体设置