如何将远程部署脚本应用于maven项目实现高效部署?

2026-04-15 09:513阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计322个文字,预计阅读时间需要2分钟。

如何将远程部署脚本应用于maven项目实现高效部署?

bash#!/bin/bash

如何将远程部署脚本应用于maven项目实现高效部署?

检查是否已安装必要工具if ! command -v git &> /dev/null; then echo Git is not installed. Please install Git. exit 1fi

检查是否已安装必要工具if ! command -v docker &> /dev/null; then echo Docker is not installed. Please install Docker. exit 1fi

进入项目目录cd /path/to/your/project

克隆仓库git clone https://github.com/your-repo/your-project.git

构建镜像docker build -t your-project .

运行容器docker run -d --name your-project your-project

echo Deployment completed successfully.

deploy.sh

#!/usr/bin/env bash # 此脚本在本地执行 # 默认发布到测试主机 t1234x.add.bjyz.toutiao.im # 传入参数prod,则发布到正式环境的4台主机 "t2001x.add.bjyz.toutiao.im" "t2002x.add.bjyz.toutiao.im" "t2003x.add.bjhc.toutiao.im" "t2004x.add.bjhc.toutiao.im app_profiles=${1:-"test"} app_name=${2:-"whatsmars-spring-boot"} remote_deploy_path="/data/toutiao" remote_deploy_user=toutiao host_file=host_${app_profiles}.txt if [ ! -e $host_file ]; then echo "host file not exists, path:${host_file}" exit 1 fi remote_deploy_hosts=(`cat ${host_file} | tr '\n' ' '`) echo "deploy env => $app_profiles, to => ${remote_deploy_hosts[@]}:${remote_deploy_path}" # 打包 project_path="$(cd `dirname $0`; pwd)/.." cd ${project_path} mvn clean package -Dmaven.test.skip=true # 部署 now=`date +"%Y%m%d%H%M%S"` jar_path="${project_path}/target/${app_name}.jar" for host in ${remote_deploy_hosts[@]}; do echo "start deploy ${jar_path} to $host" ssh ${remote_deploy_user}@${host} "${remote_deploy_path}/stop.sh" ssh ${remote_deploy_user}@${host} "mkdir -p ${remote_deploy_path}/deploy_backup; mv ${remote_deploy_path}/${app_name}.jar ${remote_deploy_path}/deploy_backup/${app_name}-${now}.jar" scp ${jar_path} ${remote_deploy_user}@${host}:${remote_deploy_path}/ ssh ${remote_deploy_user}@${host} "cd ${remote_deploy_path}/ ; ./start.sh ${app_profiles}" echo "deploy ${host} ok" sleep 10 done echo "done."

本文共计322个文字,预计阅读时间需要2分钟。

如何将远程部署脚本应用于maven项目实现高效部署?

bash#!/bin/bash

如何将远程部署脚本应用于maven项目实现高效部署?

检查是否已安装必要工具if ! command -v git &> /dev/null; then echo Git is not installed. Please install Git. exit 1fi

检查是否已安装必要工具if ! command -v docker &> /dev/null; then echo Docker is not installed. Please install Docker. exit 1fi

进入项目目录cd /path/to/your/project

克隆仓库git clone https://github.com/your-repo/your-project.git

构建镜像docker build -t your-project .

运行容器docker run -d --name your-project your-project

echo Deployment completed successfully.

deploy.sh

#!/usr/bin/env bash # 此脚本在本地执行 # 默认发布到测试主机 t1234x.add.bjyz.toutiao.im # 传入参数prod,则发布到正式环境的4台主机 "t2001x.add.bjyz.toutiao.im" "t2002x.add.bjyz.toutiao.im" "t2003x.add.bjhc.toutiao.im" "t2004x.add.bjhc.toutiao.im app_profiles=${1:-"test"} app_name=${2:-"whatsmars-spring-boot"} remote_deploy_path="/data/toutiao" remote_deploy_user=toutiao host_file=host_${app_profiles}.txt if [ ! -e $host_file ]; then echo "host file not exists, path:${host_file}" exit 1 fi remote_deploy_hosts=(`cat ${host_file} | tr '\n' ' '`) echo "deploy env => $app_profiles, to => ${remote_deploy_hosts[@]}:${remote_deploy_path}" # 打包 project_path="$(cd `dirname $0`; pwd)/.." cd ${project_path} mvn clean package -Dmaven.test.skip=true # 部署 now=`date +"%Y%m%d%H%M%S"` jar_path="${project_path}/target/${app_name}.jar" for host in ${remote_deploy_hosts[@]}; do echo "start deploy ${jar_path} to $host" ssh ${remote_deploy_user}@${host} "${remote_deploy_path}/stop.sh" ssh ${remote_deploy_user}@${host} "mkdir -p ${remote_deploy_path}/deploy_backup; mv ${remote_deploy_path}/${app_name}.jar ${remote_deploy_path}/deploy_backup/${app_name}-${now}.jar" scp ${jar_path} ${remote_deploy_user}@${host}:${remote_deploy_path}/ ssh ${remote_deploy_user}@${host} "cd ${remote_deploy_path}/ ; ./start.sh ${app_profiles}" echo "deploy ${host} ok" sleep 10 done echo "done."