Spring-mvc/Spring-bootプロジェクト自動デプロイ実装

    著者は最近、Alibaba Cloud の Centos サーバーに同時にデプロイする必要がある 2 つのバックグラウンド プロジェクトを完了しました。プロジェクト 1 はバックグラウンド コンテンツ管理に使用され、プロジェクト 2 はクライアント APP に API 呼び出しを提供するために使用されます。操作を容易にし、時間を節約するために、2 つのプロジェクト プロジェクトのオンライン デプロイメントは、「deploy.sh」自動デプロイメント スクリプトを実行することによって実装され、プロジェクトのソース コードのプル、自動パッケージ化、アプリケーションの起動のプロセス全体を実現します。次に、プロジェクトのディレクトリ ツリー構造について説明します。

 

  • apache-tomcat-8.5.15 : Spring Boot プロジェクトの Tomcat を外部から起動するために使用され、プロジェクトのパッケージ形式は .war 形式です。
  • logs ログディレクトリ: log4j2 を通じてプロジェクトログの生成ディレクトリを指定します。
  • project_deploy : プロジェクト リリース ディレクトリ。tomcat/conf ディレクトリの server.xml ファイルを編集し、その中で Context 属性を定義する必要があります: <Context docBase="/home/shitao/project_workspace/kaolayingyu-api/project_deploy/kaolayingyu- api" path=" " reloadable="true" />。
  • project_source : リモート Gittee リポジトリから最新のソース コードをプルするために使用されるソース コード ディレクトリ。
  • deploy.sh : 自動デプロイを実行するスクリプトファイル。

自動展開手順:

最初のステップでは、ローカル開発環境で変更されたコードが、GIT を通じて Gitee サイトのコード ウェアハウスに送信されます。

2 番目のステップでは、project_source ディレクトリに入り、初めてコンソールで git clone コマンドを入力してリモート ウェアハウスとの接続を確立し、プロジェクトのすべてのソース コードを取得します。その後の自動デプロイメントでは、 deploy.sh スクリプト内で git pull コマンドを実行して、コード ウェアハウスから最新のソース コードを取得します。

3 番目のステップは、mvn コマンドを使用してプロジェクトのソース コードを .war 形式のパッケージにパッケージ化することです。

4 番目の手順では、実行中の Tomcat を停止し、war パッケージをリリース ディレクトリ project_deploy にコピーし、war パッケージを解凍して、tomcat を再起動します。

自動デプロイメント スクリプトdeploy.sh :

project_name="kaolayingyu-api";
source_ws="/home/shitao/project_workspace/"$project_name"/project_source/"$project_name"/"
deploy_ws="/home/shitao/project_workspace/"$project_name"/project_deploy/"
tomcat_home="/home/shitao/project_workspace/"$project_name"/apache-tomcat-8.5.15"
cd $source_ws;
# 拉取最新的源代码
git pull
# 通过mvn命令生成项目的war包
mvn clean install -Dmaven.test.skip=true
cd target
# 杀死与项目相关的所有进程,与执行 sh ${tomcat_home}"/bin/shutdown.sh 效果等同
ps aux |grep -v grep |grep $project_name |awk '{print $2}'|xargs kill -9
#sh ${tomcat_home}"/bin/shutdown.sh"
rm -rf ${deploy_ws}$project_name
rm -rf ${deploy_ws}$project_name".war"
mkdir ${deploy_ws}$project_name
cp $project_name".war" ${deploy_ws}$project_name
cd ${deploy_ws}$project_name
jar xvf $project_name".war"
mv $project_name".war" ${deploy_ws}
cd WEB-INF/classes
# 修改项目配置文件,从开发环境切换到生产环境
sed -i 's/spring.profiles.active=dev/spring.profiles.active=prod/' application.properties
sh ${tomcat_home}"/bin/startup.sh"

    多くの Spring-Boot プロジェクトは現在、jar パッケージとしてパッケージ化されており、サーバー側のコマンドを通じて直接実行できますが、プロジェクトを外部 Tomcat を通じて実行する必要がある場合は、プロジェクトの自動デプロイメントを上記のスクリプト ファイル はい、複数の異なるプロジェクトをデプロイする場合、スクリプト ファイル内のプロジェクト名を新しいプロジェクト名に置き換えるだけで、他の作業を問題なく行うことができます^_^

おすすめ

転載: blog.csdn.net/crazestone0614/article/details/126713793