发表于: 2025-05-15 20:57:48
0 3
今天完成的任务:编写部署脚本,实现以下功能:把gitee上的项目下载,并打包成war包,下载至tomcat的wabapps文件夹内。
shell脚本如下:
#!/bin/bash
# 部署脚本配置
GITEE_REPO_URL="https://gitee.com/peng-yi-min/TestOne.git" # 替换为你的Gitee项目地址
PROJECT_NAME="spring-mybatis" # 项目名称
BRANCH="master" # 要部署的分支
TARGET_DIR="/tmp/build_${PROJECT_NAME}" # 临时构建目录
WAR_NAME="ROOT.war" # 生成的WAR文件名
TOMCAT_WEBAPPS="/usr/local/tomcat/webapps" # Tomcat的webapps目录,根据实际情况修改
MAVEN_OPTS="-DskipTests" # Maven构建选项
# 检查必要工具是否安装
check_requirements() {
if ! command -v git &> /dev/null; then
echo "错误: Git未安装,请先安装Git"
exit 1
fi
if ! command -v mvn &> /dev/null; then
echo "错误: Maven未安装,请先安装Maven"
exit 1
fi
}
# 清理旧构建
cleanup() {
echo "清理旧构建..."
if [ -d "$TARGET_DIR" ]; then
rm -rf "$TARGET_DIR"
fi
}
# 克隆代码库
clone_repository() {
echo "正在从Gitee克隆项目..."
git clone --depth 1 --branch "$BRANCH" "$GITEE_REPO_URL" "$TARGET_DIR"
if [ $? -ne 0 ]; then
echo "错误: 克隆仓库失败"
exit 1
fi
}
# 构建项目
build_project() {
echo "正在构建WAR包..."
cd "$TARGET_DIR" || exit 1
mvn clean package $MAVEN_OPTS
if [ $? -ne 0 ]; then
echo "错误: Maven构建失败"
exit 1
fi
}
# 部署到Tomcat
deploy_to_tomcat() {
echo "正在部署到Tomcat..."
# 查找生成的WAR文件
WAR_FILE=$(find "$TARGET_DIR" -name "*.war" | head -n 1)
if [ -z "$WAR_FILE" ]; then
echo "错误: 未找到生成的WAR文件"
exit 1
fi
# 停止Tomcat (可选,根据你的需求取消注释)
# systemctl stop tomcat
# 备份旧部署 (可选)
if [ -f "${TOMCAT_WEBAPPS}/${WAR_NAME}" ]; then
echo "备份旧WAR文件..."
mv "${TOMCAT_WEBAPPS}/${WAR_NAME}" "${TOMCAT_WEBAPPS}/${WAR_NAME}.bak.$(date +%Y%m%d%H%M%S)"
fi
# 复制新WAR文件
cp "$WAR_FILE" "${TOMCAT_WEBAPPS}/${WAR_NAME}"
# 修改权限 (根据你的服务器配置可能需要)
chown tomcat:tomcat "${TOMCAT_WEBAPPS}/${WAR_NAME}"
# 启动Tomcat (可选,根据你的需求取消注释)
# systemctl start tomcat
echo "部署完成!"
}
# 主执行流程
main() {
check_requirements
cleanup
clone_repository
build_project
deploy_to_tomcat
}
# 执行主函数
main
部署成功。
遇到的问题:在本地浏览器中输入服务器ip:8080可以显示数据,但请求接口显示404.
明天的计划:解决404问题。
评论