国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JAVA WEB自動化部署牛刀小試

BlackHole1 / 941人閱讀

摘要:本文記錄了自己工作中所用到的自動化部署偷懶歷程,有需要的程序汪自行收藏。結論本文僅適合在自己負責的項目中簡單進行自動化的部署偷懶,基于本文,可以擴展發揮做一個自動化部署系統。

簡述

作為一只后臺狗,在使用Java為技術棧來開發后端服務應用的時候,或多或少的都需要自己手動部署。一開始,覺得寫完一次自己手動部署到服務器上,還覺得新鮮感還不錯,畢竟看著黑黑的terminal有種莫名的興奮。后來服務端寫完,需要改動web應用的時候,而且一次需要部署三到四個應用的時候,一股惡心感從內而外噴涌而出。

本文記錄了自己工作中所用到的自動化部署(偷懶)歷程,有需要的程序汪自行收藏。

辛酸之路

環境

由于工作中使用的IDE是eclipse,使用Maven進行包管理,所以,以下所涉及的都是基于Java 1.8,Maven 3.3.9,Elicpse Luna 4.4.2。

歷程

TOP1 Maven插件配置

項目中如果有使用Maven的話,則可以很方便的以tomcat7為例,在pom文件中配置一個插件即可輕松實現,代碼如下:


    org.apache.tomcat.maven
    tomcat7-maven-plugin
    2.2
    
        http://server:port/manager/text
        admin
        admin
        true
        /wepapp
    

此處注意url節點。另外需要在tomcat服務器的conf/tomcat-users.xml配置一個admin的用戶權限。

  
  

大功告成,運行mvn tomcat7:deploy,你就會驚奇的發現war文件就到了對應的tomcat下的webapps目錄之中了。

TOP2 Linux腳本部署

tomcat雖然部署麻煩,但是就穩定性來說,比起其它的web容器還是稍微好一丟丟。略過tomcat的坑不說,服務器中往往會有多個tomcat存在,特別是在測試的服務器上,我司放了有10多個tomcat,這樣,作為一個 沒有專門部署人員的小團隊來說,簡直是個噩夢,部署幾個應用需要執行一大丟命令。

會偷懶的人往往就會寫好一些常用的部署腳步,避免重復性的工作,在這里,我只簡單介紹自己所使用的一種腳本,就是根據tomcat容器所在路徑找到所在進程,殺死進程,然后進行重啟。

#!/bin/bash
tomcat_path1=/home/tomcat/tomcat_r3
cd $tomcat_path1
echo xxx的tomact路徑是$tomcat_path1
# 找到tomcat1的進程id
tomcat1_pid=$(ps -ef|grep $tomcat_path1|gawk "$0 !~/grep/ {print $2}" |tr -s "
" " ")
if [ "$tomcat1_pid" ];then
    echo xxx的tomact進程 id是 $tomcat1_pid
  # 殺掉tomcat1進程
  if
    kill -9 $tomcat1_pid
  then
    echo 成功殺死xxx的進程
  else
    echo xxx進程沒殺死,尷尬
  fi
else
    echo XXX進程已經掛掉了
fi
# 啟動tomcat2并重定向到日志輸出
sh $tomcat_path2/bin/startup.sh
echo 重啟xxx

TOP3 Windows與Linux架橋互通

由于是在windows中進行開發工作,服務器使用的是cent os,所以又會多出許多重復性的工作。所以我選擇使用putty,在windows與Linux之間架一個橋,從而能夠方便的上傳文件以及對遠程服務器進行操作。

整體思路是,本地打包maven項目,打包完成之后上傳到服務器WEB容器對應目錄,然后調用我們上一步的服務器腳本,完成整體項目部署流程。批處理文件代碼示例如下:

@echo off
set project_path=xxx
set server_user_1=root
set server_passwd_1=xxx
set server_ip_1=serverip
set local_file1=%project_path1%	argetxxx.war

set deploy-shell=test-web-deploy.sh
echo 當前使用的JDK 版本: 
java -version

echo 開始打包
E:
cd %project_path%
call mvn clean install
echo 打包完畢

echo 開始上傳xxx到服務器
call pscp -P port -l %server_user_1% -pw %server_passwd_1% -r %local_file1% %server_ip_1%:%server_path1%
echo 上傳xxx完畢

echo 開始運行腳本
call plink -P port %server_user_1%@%server_ip_1% -pw %server_passwd_1% sh %deploy-shell%

效果

終于鳥槍換炮了,感覺自己又多了好多時間可以做其他的(休息)事了。測試了一下,效果還是很令人滿意的,花在部署上的時間已經幾近為零。

結論

本文僅適合在自己負責的項目中簡單進行自動化的部署(偷懶),基于本文,可以擴展發揮做一個自動化部署系統。

Tips:關于CI的話,網絡上有許多持續集成項目的框架,在這里推薦三個:

Travis CI 開源持續集成框架,搭配github使用,干活不累,而且只需要配置yaml,方便快捷。

jenkins 基于Java開發的CI,搭配jetty,干活不累。

Go 采用Server-Agent的模式,配置pipeline,干活不累。

這里只是做一個學習和交流,如需要更深層次的交流,可以聯系作者:1049058427@qq.com
個人博客地址:小安安的自留地
知乎專欄地址:全干工程師
Github地址:wslongchen
或者掃碼回復“應垂絲汀”加入作者的小圈子:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67475.html

相關文章

  • JavaWeb開發

    摘要:在頁面中執行的表達式語法表達式注意表達式不以分號結束示例張學友聲明一個字符串變量聲明一個返回整型值的函數單行注釋多行注釋這里是腳本代碼測試哈哈你好四頁面生命周期問答題當用戶第一次請求一個頁面時,首先被執行的方法是構造方法答案選。 java web開發學習筆記。 一、jsp簡介 JSP與 PHP、ASP、ASP.NET 等語言類似,運行在服務端的語言。 JSP(全稱Java Server...

    soasme 評論0 收藏0
  • cordova研習筆記(一) —— 初試牛刀之cordova.js概要

    摘要:任何初始化任務應該在文件中的事件的事件處理函數中。這個配置文件有幾個地方很關鍵,一開始沒有認真看,將插件導進工程跑的時候各種問題,十分頭痛,不得不重新認真看看文檔。 前言 來新公司的第一個任務,研究hybrid App中間層實現原理,做中間層插件開發。這個任務挺有意思,也很有挑戰性,之前在DCloud雖然做過5+ App開發,但是中間層的東西確實涉及不多。本系列文章屬于系列開篇cord...

    buildupchao 評論0 收藏0
  • 基于web的全景—— Pannellum小試

    摘要:前言基于端的業務需求,為了更好地服務于用戶。需要在售賣端加上全景預覽的功能,目前用的是開發的產品,需要基于的全景預覽功能。關于初始化配置,對于多場景的全景來說最好使用和屬性組成的配置項。 前言 基于C端的業務需求,為了更好地服務于用戶。需要在售賣端加上全景預覽的功能,目前用的是web開發的產品,需要基于web的全景預覽功能。通過搜索查找比較,最終選擇使用pannellum。 Pann...

    since1986 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<