1. 程式人生 > >自動化部署java web專案

自動化部署java web專案

關於自動化部署已經說了很多,也有很多專業的工具。本文不敢高攀那些高大上的方案,只是從自身實際出發,主要使用svn這個版本管理的工具,方便了釋出和部署。

一. 原因

做為一箇中小團隊,釋出和部署是家常便飯,而且容易出問題,我們一般採用的方法有如下兩種:

  • 直接更換war包
  • 替換相應的jar包
    前者在有時候頻繁部署的時候很慢(因為war包比較大,至少都有幾十M,每次都需要幾分鐘);而後者先要找到更新的jar包,再找到生產環境上的相應位置,然後再一一替換,步驟繁瑣而且容易出錯。而且兩者有同樣的問題,就是出現bug時,無法確認生產環境究竟部署的是哪一版本。

二. 解決辦法

為了解決這一問題,我使用svn這個版本管理工具,簡單的說,就是把需要部署的所有檔案都放置到svn伺服器上,當需要重新發布的時候,在生產環境上使用svn更新到當前版本。
為完成這一工作,我寫了如下3個指令碼:

  • compile_produce.sh 編譯生產版本
  • check_produce.sh 生產環境上首次部署
  • update_produce.sh 生產環境上更新部署

指令碼分別如下:

1. compile_produce.sh

#!/bin/bash -e
cd path
svn update --username=deploy
mvn clean install -P produce
echo "[produce environment]-------------------------------------------"
echo "[produce environment] compile completed"
rm -rf release mkdir release cp -r target/app/* release/ cd release echo "[produce environment] copy completed" svn add * --force svn commit -m "produce environment release" --username=deploy echo "[produce environment] commit completed" echo "[produce environment]-------------------------------------------"

2. check_produce.sh

#!/bin/bash -e
cd path
svn checkout url --username=deploy --password=deploy

3. update_produce.sh

#!/bin/bash
cd path
svn revert -R .
svn update --username=deploy --password=deploy
echo "[produce environment]-------------------------------------------"
echo "[produce environment] update completed"
pid=`ps -ef | grep tomcat7 | grep -v 'grep' | awk '{print $2}'`
kill -9 $pid
echo "[produce environment] kill process completed"
tomcat/tomcat7/bin/startup.sh
echo "[produce environment] start tomcat"
echo "[produce environment]-------------------------------------------"
DATE=`date '+%y-%m-%d'`
tail -f /fqgj/tomcat/tomcat7/logs/catalina.${DATE}.out

最後一步,看到tomcat的日誌輸出,可以說明發布成功了。
採用這一方法,最終部署只要執行編譯和更新兩個指令碼就可以了。做到了釋出的有序性,時間也很快,一般只需要十幾秒即可。而且可以精確定位生產環境的版本,避免了由於版本不清產生的一些問題。

相關推薦

自動化部署java web專案

關於自動化部署已經說了很多,也有很多專業的工具。本文不敢高攀那些高大上的方案,只是從自身實際出發,主要使用svn這個版本管理的工具,方便了釋出和部署。 一. 原因 做為一箇中小團隊,釋出和部署是家常便飯,而且容易出問題,我們一般採用的方法有如下兩種:

《阿里雲伺服器搭建》------實現Jenkins和github之間自動化部署Java web專案

本系列教程的搭建環境為阿里雲伺服器,其他伺服器可作為參考。 本文主要講述實現Jenkins和github之間自動化部署專案 然後登陸管理員使用者。 為我們的專案建立一個job3.為我們的專案建立一個

部署java-web專案到linux伺服器上

記錄自己部署javaweb專案的基本操作以及遇到的坑 我用的是eclipse,匯出war包。 (這裡有個巨坑,eclipse有專案快取,所以你改的東西可能沒有用,tomcat伺服器也有快取,所以匯出的時候記得清一下快取) 在linux伺服器上安裝配置tomcat伺服器,把

《阿里雲伺服器搭建》------實現Jenkins和github之間自動化部署Maven web專案

本系列教程的搭建環境為阿里雲伺服器,其他伺服器可作為參考。 本文主要講述實現Jenkins和github之間自動化部署Maven web專案 前面,我們已經完成的jenkins部署java web專案,下面來部署一個maven專案。 1.下載部署maven專案所

部署Java Web 專案

前言 同事讓我研究一下,如何把我們公司自己的產品,通過Docker搞一個映象。後面換伺服器,方便專案部署,而不用在新的伺服器上重新搭建相關環境。 之前簡單的瞭解過Docker。並且之前通過docker搭建gogs,也體會到了docker的強大和方便

idea打jar包並部署java web專案

1.idea打jar包(idea提供介面是jar包方式)   點選package,結束就OK,jar包一般放在target裡面     部署專案 1.停止之前的服務:   查到到java的所有程序:ps -ef|grep java   殺死相關的web服務

linux部署java web 專案(筆記)

建立資料夾  # mkdir java //   建立資料夾java,mysql,tomcat 個人習慣 我喜歡分開資料夾安裝 # cd java //   開啟新建立的資料夾  JDK

部署Java Web 專案之注意事項

上篇 Docker - 部署Java Web 專案記錄了使用docker如何搭建一個擁有java執行環境的docker映象。 這篇部落格記錄之前構建映象過程中遇到的一些問題。 這裡,在docker容器中,部署專案思路: 1.先git拉取最新程式碼 2.因

nginx安裝和簡單部署java web專案

1.Nginx (“engine x”) 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好。 Nginx由核心和模組組成,其中,核心的設

Linux(Centos7.0)安裝tomcat並且部署Java Web專案

目錄 1.1.因為tomcat的安裝依賴於Java jdk,所以我們需要在判斷linux系統下面是否安裝jdk,     檢查jdk環境:java -version,如果顯示jdk版本號,則證明已經安裝,如果不顯示,則證明沒有安裝,命令如下:

Linux(Centos)之安裝tomcat並且部署Java Web專案

  b.因為tomcat的安裝依賴於Java jdk,所以我們需要在判斷linux系統下面是否安裝jdk     b.1 使用(Xshell)連線到Linux系統下面     b.2 輸入命令:java -version,如果顯示jdk版本號,則證明已經安

新手超詳細記錄:Docker for Windows打包製作tomcat映象並部署java web專案

專案基本情況 我用的是普通的java web專案,其中採用了struts框架,沒有main函式,Makefile實在寫不出來,因此spring框架的那種打包docker的方式並不適用。 開發工具用的是MyEclipse10,平常在本地執行的時候就是部署到

Docker中使用Centos映象安裝tomcat,jdk1.8部署Java web專案

1. docker pull centos獲取centos映象 2. 後臺執行centos映象並開放8080埠,window端可通過訪問80埠訪問到8080埠 docker run -itd -p 80:8080 docker.io/centos 3. 從宿主機拷貝檔

一鍵部署Java Web專案

1.下載壓縮包版本的JDK、Mysql、Tomcat,本例中採用的是JDK1.8,Mysql5.6,Tomcat8.0版本。 2.解壓後分別將JDK資料夾,Mysql資料夾,Tomcat資料夾放入同一個資料夾(本例該資料夾名為Web)。 3.在Mysql資料夾下建立“tem

搭建linux伺服器並部署java web專案(CentOS7+tomcat+Mysql)

第一步:搭建環境。 安裝VMware Workstation,並新建虛擬機器CentOS。環境搭建好之後。 第二步:安裝jdk(我使用的第一種方法) 第三步:安裝mysql伺服器(我使用的方法2) 第四步:修改mysql-server登陸密碼 第五步:mysql建立使

新浪雲 雲應用sae 部署java Web專案 (附有資料庫)

有些時候,我們需要將我們的專案部署到雲端,進行遠端專案測試。本篇文章主要介紹使用新浪雲進行專案部署,使用外網進行專案測試。第一步: 首先,我們需要在新浪雲進行賬號註冊,新使用者註冊會有一定的獎勵(說白了就是省錢),註冊介面:第二步:點選進入控制檯,建立sae應用。第三步:建立

CentOS7 安裝jetty 及 tomcat ,部署Java Web專案

 安裝前須安裝JDK [[email protected] root~]# yum install java-1.8.0-openjdk wget 一,安裝jetty 1,下載jetty 可以建立一個目錄/dev,在/dev目錄下下載jetty [[ema

阿里雲部署Java web專案初體驗

         摘要:本文主要講了如何在阿里雲上安裝JDK、Tomcat以及其配置過程。最後以一個例項來演示在阿里雲上部署Java web專案。 本文例項下載: 一、準備工作  1、註冊賬號 下載完成後。可到這裡https://free.aliyun.co

從零開始學習Linux部署Java web專案

前言 最近越來越發現需要學習的東西太多了,前幾天公司伺服器出現問題,需要對伺服器硬體進行維護,當然伺服器上的服務需要部署到另一個伺服器上。這對於我來說是很陌生的,雖然這件工作沒有讓我去做,但是還是很好奇web專案是如何部署到伺服器的。其實很早之前就想學習這些,

阿里雲部署Java web專案初體驗(轉)

         摘要:本文主要講了如何在阿里雲上安裝JDK、Tomcat以及其配置過程。最後以一個例項來演示在阿里雲上部署Java web專案。 本文例項下載: 一、準備工作  1、註冊賬號 下載完成後。可到這裡https://free.aliyun.co