一篇關於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 ,大功告成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM