IDEA部署項目,並結合Shell腳本運行Java程序


一、概述

  在實際開發中,我們寫好的代碼,往往打成war包或jar包,通過winscp或其他軟件將其上傳至服務器,然而這樣非常大的一個弊端就是不利於開發,為什么這么說呢?假如我們剛剛將springboot項目達jar包通過winscp部署在linux系統中,然而各種突如其來、意想不到的bug接踵而來,你在本地測試調試bug,難道你要一次又一次的打jar包,上傳至服務器?我想你會瘋了吧,哈哈,言歸正傳。

  運行java項目的本質,就是讓jvm運行.class文件(純屬個人理解,意思你懂就好),所以我們為何不嘗試直接將本地classes目錄與服務器關聯呢,這樣直接上傳我們調試修改的.class文件即可,而強大的IDEA工具可以幫我們將本地classes文件與服務器的classes關聯映射,這樣更是方便了我們開發。這里可以參考:IDEA自動部署WEB工程至遠程服務器(學習筆記)將本地classes關聯映射服務器的對應目錄。

二、測試准備

  ①使用IDEA將本地class與遠程服務器的classes目錄做關聯映射(IDEA自動部署WEB工程至遠程服務器(學習筆記)

  ②編寫shell腳本運行java程序

三、正式測試

  服務器端做如下規划:

  

  客戶端IDEA只需要配置好目錄關聯映射即可:(IDEA自動部署WEB工程至遠程服務器(學習筆記))當然,也可以通過手動將本地classes、依賴包lib

①准備對應目錄

  

 ②准備SpringBoot項目

 ③本地classes目錄與服務器的目錄做關聯映射

第一步:按照如下步驟配置

  

 第二步:

  

 第三步:

  

 第四步:

  

 最后一步:將整個classes目錄上傳至服務器

  

 ④上傳工程依賴lib至對應的文件

⑤編寫shell腳本啟動該程序

#!/bin/bash
#測試程序 運行腳本

#jdk路徑
JAVA_HOME="/home/software/jdk1.8"

#項目的根目錄
APP_HOME="/home/app/test"

#pid的輸出目錄
PIDFILE="${APP_HOME}/Application.pid"

#指定class目錄
CLASSPATH=$APP_HOME/bin

for i in $APP_HOME/lib/*.jar;do
        CLASSPATH="$CLASSPATH":"$i"
done

echo ${CLASSPATH}
MAINCLASS="com.test.demo.DemoApplication"

#后台運行程序
#nohup $JAVA_HOME/bin/java -classpath $CLASSPATH  $MAINCLASS&

#運行java程序
$JAVA_HOME/bin/java -classpath $CLASSPATH  $MAINCLASS

#將進程id寫入文件
ps -ef | grep "Application" |grep -v grep|awk '{print $2}'>${PIDFILE}
View Code

⑥通過shell腳本啟動該程序:sh start.sh

⑦通過瀏覽器訪問:192.168.229.128:8080/test?name=張三(這里確保服務器的8080端口開放) 

當我們添加某個類或者修改某個些配置文件的時候,無需進行重新打包、上傳服務器等這么麻煩的步驟了,我們只需將添加的class通過IDEA上傳即可完成快速部署!

例如:我們新增一個類:TestController,只需要將對應的class提交至服務器即可完成部署!

 

 將對應class提交至服務器!

 至此,我們通過shell腳本運行java程序已經完成!


免責聲明!

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



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