一篇关于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启动脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EZ 2018 03 23 NOIP20
- 下一篇: centos solr 部署到 tomc