一篇關於Maven項目的jar包Shell啓動腳本

     使用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 ,大功告成。

相關文章
相關標籤/搜索