Shellはgitからコードを引き出してtomcatにコンパイルして配置します。

12154 ワード

Shellはgitからコードを引き出してtomcatにコンパイルして配置します。
ディレクトリ構造
//ダタ
ルートディレクトリ
//data/deploy
shellスクリプトディレクトリ
//data/git-code
gitにコードを引くディレクトリ
//data/tools
tomcatディレクトリ
//data/webapps
war包カタログ
shellスクリプト
#!/bin/bash

tomcat_name="tomcat-web-hello"
# git/    
git_name="web"
#     
module_name="web-hello"

#  tomcat
function killTomcat(){
  ps -ef | grep $tomcat_name | grep -v 'grep' | awk '{print $2}' | xargs kill -9
  echo "killd tomcat "
}

function startTomcat(){
  ps -ef | grep $tomcat_name | grep -v 'grep' | awk '{print $2}' | xargs kill -9
  cd /data/tools/$tomcat_name/bin/
  nohup ./startup.sh
  echo "start tomcat end"
  tail -f /data/tools/$tomcat_name/logs/catalina.out
}

function svnmvn(){
  cd /data/git-code/$git_name
  git fetch
  if [ "$branch" != "" ]
  then
  git checkout -b $branch origin/$branch
  git checkout $branch
  fi
  git pull
  mvn clean install -Dmaven.test.skip=true
}

function deployWar(){
  dir=`date +%Y%m%d-%H%M`
  cd /data/webapps/$module_name
  rm * -rf

  cp /data/git-code/$git_name/$module_name/target/$module_name-1.0-SNAPSHOT.war /data/webapps/$module_name
  unzip $module_name-1.0-SNAPSHOT.war
}


echo -n "!!!$git_name-       : "
read branch

svnmvn $branch
if [ $? -eq 0 ]
then
  deployWar
  killTomcat
  sleep 2
  startTomcat
else
  echo "ERROR: mvn failed!"
fi
その他の設定
toolsディレクトリに入ると対応するtomcatがあります。cd /data/tools/tomcat-web-hello/conf起動パラメータを設定vim catalina.properties最後の行に追加spring.profiles.active=prodキャッシュの設定
キャッシュ不足のエラーを避けるvim content.xml追加は、
<Context>
    
    
    <WatchedResource>WEB-INF/web.xmlWatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xmlWatchedResource>

    
    
    <Resources cachingAllowed="true" cacheMaxSize="100000" />
Context>
tomcat配置経路を設定します。
注:もし設定しないならば、shellシナリオのwebappsはtomcatの下のwebappsパスに変えるべきです。vim server.xml追加は、
<Host name="localhost"  appBase="webapps" 
	unpackWARs="true" autoDeploy="true">

    
    

    
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log" suffix=".txt"
    pattern="%h %l %u %t "%r" %s %b" />
    <Context path="/" docBase="/data/webapps/web-hello" debug="0"/>
Host>