java 一鍵部署 jar 包和 war 包
java 一鍵部署 jar 包和 war 包
一、創(chuàng)建打包命令 gateway-package.bat
@echo off cd /d "F:\uincall-cloud-service\uin-api-alibaba\gateway\" gradle build bootJar
- @echo off 關(guān)閉命令回顯,當(dāng)不需要 dos 命令一行一行在命令窗口中顯示的時(shí)候使用,@echo on 顯示命令回顯
例如:
當(dāng)為 @echo on 會(huì)顯示執(zhí)行的命令
@echo on title A color 01 echo %date% pause
當(dāng)為 @echo off 并不會(huì)執(zhí)行 title A 和 color 01 命令
echo 是輸入提示信息
pause 是暫停執(zhí)行執(zhí)行命令,按下任意鍵后會(huì)繼續(xù)執(zhí)行,pause 會(huì)提示“請(qǐng)按任意鍵繼續(xù)...”
- 當(dāng)執(zhí)行的 bat 不在項(xiàng)目目錄時(shí),需要進(jìn)入到項(xiàng)目目錄執(zhí)行打包命令,需要使用 /d 命令,后面是進(jìn)入的目錄
- gradle build bootJar 是執(zhí)行 gradle 打包命令,如果是 maven 工程則使用 maven 打包命令,例如:mvn clean package -Dmaven.test.skip=true
創(chuàng)建項(xiàng)目打包并執(zhí)行到上傳到服務(wù)器,并且結(jié)束之前項(xiàng)目部署的進(jìn)程,并啟動(dòng)新的部署命令
二、創(chuàng)建啟動(dòng)文件 gateway.xml
<?xml version="1.0" encoding="utf-8" ?> <config> <threadPoolSize default="5">3</threadPoolSize><!--線程池大小,如果上傳服務(wù)器多的話可以調(diào)大,默認(rèn)5個(gè)線程--> <servers> <server> <!-- 服務(wù)器 ip --> <host>1.0.0.0</host> <!-- 服務(wù)器用戶名 --> <userName>root</userName> <!-- 服務(wù)器密碼 --> <password>password</password> <!-- 上傳的文件,可以有多個(gè) --> <uploads> <upload> <!-- 上傳的包路徑 --> <local>F:\uincall-cloud-service\uin-api-alibaba\gateway\build\libs\gateway-1.0.0.jar</local> <!-- 上傳到服務(wù)器的路徑 --> <remote>/root/data/callcenter</remote> </upload> </uploads> <!-- 需要執(zhí)行的命令,可以有多個(gè) --> <commands> <!-- 結(jié)束之前部署的進(jìn)程 --> <command><![CDATA[source /etc/profile; ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9]]></command> <!-- 重新部署新上傳的包 --> <command><![CDATA[source /etc/profile; nohup java -jar /root/data/callcenter/gateway-1.0.0.jar >> /root/data/callcenter/gateway.log 2>&1 &]]></command> </commands> </server> </servers> </config>
- ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 查詢正在部署的項(xiàng)目進(jìn)行并且殺死
- ps -ef | grep gateway-1.0.0.jar 是查詢進(jìn)程
- grep -v grep 過濾包含 grep 的進(jìn)程行,然后再殺掉剩下的進(jìn)程
- awk '{print $2}' 提取找到的進(jìn)程行記錄中第二列的參數(shù),也就是正在執(zhí)行項(xiàng)目的進(jìn)程號(hào)
- xargs kill -9 把前面的參數(shù)都傳遞給后面的命令 kill -9
三、一鍵打包并部署腳本 gateway-deploy.bat 文件內(nèi)容
call gateway-package.bat java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\gateway.xml pause
- call gateway-package.bat 是執(zhí)行上面的項(xiàng)目打包的 gateway-package.bat 文件,call 作用是可以在當(dāng)前批處理執(zhí)行前調(diào)用另一個(gè)批處理文件,這里的意思就是先打包在上傳至服務(wù)器并且部署
- java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar 可執(zhí)行文件 jar 包,負(fù)責(zé)執(zhí)行上傳部署指令
- F:\uincall-cloud-service\test-deploy\gateway.xml ,上傳部署的命令都寫在 gateway.xml 中
注意:這里要執(zhí)行的文件都需使用絕對(duì)路徑,哪怕在一個(gè)文件加里!??!
四、雙擊打包部署 bat 文件 gateway-deploy.bat
成功上傳并且部署成功!!
五、執(zhí)行 vue 打包并且上傳部署
創(chuàng)建 vue 打包 bat 文件 vue-package.bat
@echo off echo 開始打包...... cd /d "F:\uincall-cloud-service\cc.uincall.com\" npm run build echo 打包完畢 success
F:\uincall-cloud-service\cc.uincall.com" 是工程根目錄
六、安裝 7z 壓縮工具并配置系統(tǒng)環(huán)境變量
創(chuàng)建 7z 壓縮 vue 打包后的 bat 文件 zip.bat
@echo off set CALLCENTER_PATH=F:\uincall-cloud-service\cc.uincall.com\dist\* set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar echo 開始?jí)嚎s callcenter vue 7z a -r %ZIP_PATH% %CALLCENTER_PATH%
- set CALLCENTER_PATH=F:\uincall-cloud-service\cc.uincall.com\dist* vue 打包后的文件夾目錄,打包后的文件都在此目錄下
- set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar 設(shè)置打包后的文件名和格式
- 7z a -r %ZIP_PATH% %CALLCENTER_PATH%,7z:使用 7z 壓縮,a:是添加文件到壓縮文件中,-r: 包括子目錄,其他是引用上面定義的變量,也就是打包后的格式和需要打包的文件所在目錄
七、創(chuàng)建上傳部署文件 webConfig.xml
<config> <threadPoolSize default="5">3</threadPoolSize><!--線程池大小,如果上傳服務(wù)器多的話可以調(diào)大,默認(rèn)5個(gè)線程--> <servers> <server> <!-- 服務(wù)器 ip --> <host>1.0.0.0</host> <!-- 服務(wù)器用戶名 --> <userName>root</userName> <!-- 服務(wù)器密碼 --> <password>password</password> <!-- 上傳的文件,可以有多個(gè) --> <uploads> <upload> <!-- 上傳的文件 --> <local>F:\uincall-cloud-service\deploy\callcenter.tar</local> <!-- 上傳到服務(wù)器的目錄 --> <remote>/root/data/callcenter/web</remote> </upload> </uploads> <!-- 上傳成功后執(zhí)行的命令 --> <commands> <!-- 添加 777 權(quán)限 --> <command><![CDATA[source /etc/profile; chmod 777 /root/data/callcenter/web/callcenter.tar]]></command> <!-- 解壓 -C 表示創(chuàng)建新的檔案文件,會(huì)解壓到新的目錄,默認(rèn)解壓到根目錄 / --> <command><![CDATA[source /etc/profile; tar -xvf /root/data/callcenter/web/callcenter.tar -C /root/data/callcenter/web]]></command> <!-- 解壓完刪除壓縮文件 --> <command><![CDATA[source /etc/profile; rm -rf /root/data/callcenter/web/callcenter.tar]]></command> <!-- 刷新 nginx --> <command><![CDATA[source /etc/profile; nginx -s reload]]></command> </commands> </server> </servers> </config>
創(chuàng)建 vue 打包部署 bat 文件 vue-deploy.bat,分別執(zhí)行上面創(chuàng)建打包 vue-package.bat 壓縮 zip.bat 上傳部署命令 webConfig.cml
call F:\uincall-cloud-service\test-deploy\vue-package.bat call F:\uincall-cloud-service\test-deploy\zip.bat java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\webConfig.xml echo 上傳并解壓完畢 pause
九、雙擊執(zhí)行部署 vue-deploy.bat
成功上傳并解壓
以上就是java 一鍵部署 jar 包和 war 包的詳細(xì)內(nèi)容,更多關(guān)于java 部署 jar 包 war 包的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!,希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Mybatis核心類SqlSessionFactory的構(gòu)建
這篇文章主要為大家詳細(xì)介紹了Mybatis核心類SqlSessionFactory的構(gòu)建過程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解
JDK 的動(dòng)態(tài)代理是基于攔截器和反射來實(shí)現(xiàn)的,JDK代理是不需要第三方庫支持的,只需要JDK環(huán)境就可以進(jìn)行代理,下面這篇文章主要給大家介紹了關(guān)于Java中JDK動(dòng)態(tài)代理的超詳細(xì)講解,需要的朋友可以參考下2022-10-10Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實(shí)現(xiàn)詳解
這篇文章主要介紹了Spring框架基于注解的AOP之各種通知的使用及其環(huán)繞通知,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11java面試JDK8?new?ReentrantLock()加鎖流程解析
這篇文章主要為大家介紹了java面試JDK8?new?ReentrantLock()加鎖流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Java實(shí)戰(zhàn)項(xiàng)目 圖書管理系統(tǒng)
這篇文章主要介紹了使用java SSM jsp mysql maven設(shè)計(jì)實(shí)現(xiàn)的精品圖書管理系統(tǒng),是一個(gè)很好的實(shí)例,對(duì)大家的學(xué)習(xí)和工作具有借鑒意義,建議收藏一下2021-09-09HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析
這篇文章主要介紹了HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析,HashMap作為開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),也是面試中經(jīng)常被問的知識(shí)點(diǎn),因此作為開發(fā)者應(yīng)該盡可能多的理解其底層的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-11-11