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)閉命令回顯,當不需要 dos 命令一行一行在命令窗口中顯示的時候使用,@echo on 顯示命令回顯
例如:
當為 @echo on 會顯示執(zhí)行的命令
@echo on title A color 01 echo %date% pause

當為 @echo off 并不會執(zhí)行 title A 和 color 01 命令

echo 是輸入提示信息
pause 是暫停執(zhí)行執(zhí)行命令,按下任意鍵后會繼續(xù)執(zhí)行,pause 會提示“請按任意鍵繼續(xù)...”
- 當執(zhí)行的 bat 不在項目目錄時,需要進入到項目目錄執(zhí)行打包命令,需要使用 /d 命令,后面是進入的目錄
- gradle build bootJar 是執(zhí)行 gradle 打包命令,如果是 maven 工程則使用 maven 打包命令,例如:mvn clean package -Dmaven.test.skip=true
創(chuàng)建項目打包并執(zhí)行到上傳到服務(wù)器,并且結(jié)束之前項目部署的進程,并啟動新的部署命令
二、創(chuàng)建啟動文件 gateway.xml
<?xml version="1.0" encoding="utf-8" ?>
<config>
<threadPoolSize default="5">3</threadPoolSize><!--線程池大小,如果上傳服務(wù)器多的話可以調(diào)大,默認5個線程-->
<servers>
<server>
<!-- 服務(wù)器 ip -->
<host>1.0.0.0</host>
<!-- 服務(wù)器用戶名 -->
<userName>root</userName>
<!-- 服務(wù)器密碼 -->
<password>password</password>
<!-- 上傳的文件,可以有多個 -->
<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í)行的命令,可以有多個 -->
<commands>
<!-- 結(jié)束之前部署的進程 -->
<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 查詢正在部署的項目進行并且殺死
- ps -ef | grep gateway-1.0.0.jar 是查詢進程
- grep -v grep 過濾包含 grep 的進程行,然后再殺掉剩下的進程
- awk '{print $2}' 提取找到的進程行記錄中第二列的參數(shù),也就是正在執(zhí)行項目的進程號

- 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í)行上面的項目打包的 gateway-package.bat 文件,call 作用是可以在當前批處理執(zhí)行前調(diào)用另一個批處理文件,這里的意思就是先打包在上傳至服務(wù)器并且部署
- java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar 可執(zhí)行文件 jar 包,負責執(zhí)行上傳部署指令
- F:\uincall-cloud-service\test-deploy\gateway.xml ,上傳部署的命令都寫在 gateway.xml 中
注意:這里要執(zhí)行的文件都需使用絕對路徑,哪怕在一個文件加里?。?!
四、雙擊打包部署 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 開始壓縮 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)大,默認5個線程-->
<servers>
<server>
<!-- 服務(wù)器 ip -->
<host>1.0.0.0</host>
<!-- 服務(wù)器用戶名 -->
<userName>root</userName>
<!-- 服務(wù)器密碼 -->
<password>password</password>
<!-- 上傳的文件,可以有多個 -->
<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)建新的檔案文件,會解壓到新的目錄,默認解壓到根目錄 / -->
<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 包的詳細內(nèi)容,更多關(guān)于java 部署 jar 包 war 包的資料請關(guān)注腳本之家其它相關(guān)文章!,希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Mybatis核心類SqlSessionFactory的構(gòu)建
這篇文章主要為大家詳細介紹了Mybatis核心類SqlSessionFactory的構(gòu)建過程,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2022-12-12
Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實現(xiàn)詳解
這篇文章主要介紹了Spring框架基于注解的AOP之各種通知的使用及其環(huán)繞通知,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-11-11
java面試JDK8?new?ReentrantLock()加鎖流程解析
這篇文章主要為大家介紹了java面試JDK8?new?ReentrantLock()加鎖流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細解析
這篇文章主要介紹了HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細解析,HashMap作為開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),也是面試中經(jīng)常被問的知識點,因此作為開發(fā)者應(yīng)該盡可能多的理解其底層的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-11-11

