#!/bin/bash set -e env='test' base_dir=`pwd` config_dir="${base_dir}/config" proj_dir="${base_dir}/tmp/proj" bin_dir="${base_dir}/tmp/bin" create_dirs() { if [ -d ${proj_dir} ]; then rm -rf ${proj_dir} fi mkdir -p ${proj_dir} if [ -d ${bin_dir} ]; then rm -rf ${bin_dir} fi mkdir -p ${bin_dir} } ############################################################################### # clone 项目 ############################################################################### clone_proj() { cd ${proj_dir} git clone --depth=1 https://git.reghao.cn/reghao/jutil git clone --depth=1 https://git.reghao.cn/reghao/oss git clone --depth=1 https://git.reghao.cn/reghao/bnt git clone --depth=1 https://git.reghao.cn/reghao/tnb git clone --depth=1 https://git.reghao.cn/reghao/tnbapp } ############################################################################### # 安装依赖 ############################################################################### build_dependencies() { cd ${proj_dir}/jutil mvn clean install -Dmaven.test.skip cd ${proj_dir}/oss mvn clean install -Dmaven.test.skip -pl oss-api mvn clean install -Dmaven.test.skip -pl oss-sdk ############################################################################### # 安装 tnb 项目提供的依赖 ############################################################################### cd ${proj_dir}/tnb mvn clean install -am -Dmaven.test.skip -pl common mvn clean install -am -Dmaven.test.skip -pl log mvn clean install -am -Dmaven.test.skip -pl eureka/eureka-api/ mvn clean install -am -Dmaven.test.skip -pl account/account-api/ mvn clean install -am -Dmaven.test.skip -pl user/user-api/ mvn clean install -am -Dmaven.test.skip -pl message/message-api/ mvn clean install -am -Dmaven.test.skip -pl content/content-api/ mvn clean install -am -Dmaven.test.skip -pl file/file-api/ mvn clean install -am -Dmaven.test.skip -pl data/data-api/ ############################################################################### # 安装 bnt 项目提供的依赖 ############################################################################### cd ${proj_dir}/bnt mvn clean install -Dmaven.test.skip -pl admin-api } ############################################################################### # 修改第三方服务依赖配置 ############################################################################### replace_server_config() { cd ${config_dir} java -jar deployer.jar application.yml ${proj_dir} } ############################################################################### # 构建后端应用 ############################################################################### build_backend() { ############################################################################### # 构建 oss 项目 jar 包 ############################################################################### cd ${proj_dir}/oss mvn clean package -Dmaven.test.skip -pl oss-store -P${env} if [ ! -d ${bin_dir}/oss-store ]; then mkdir ${bin_dir}/oss-store fi cp oss-store/bin/* ${bin_dir}/oss-store ############################################################################### # 构建 bnt 项目 jar 包 ############################################################################### cd ${proj_dir}/bnt mvn clean package -Dmaven.test.skip -pl web -P${env} cp web/bin/bntweb.jar ${bin_dir} ############################################################################### # 构建 tnb 项目 jar 包 ############################################################################### cd ${proj_dir}/tnb mvn clean package -Dmaven.test.skip -P${env} cp eureka/eureka-server/target/tnb-eureka.jar ${bin_dir} cp gateway/target/tnb-gateway.jar ${bin_dir} cp account/account-service/target/tnb-account.jar ${bin_dir} cp user/user-service/target/tnb-user.jar ${bin_dir} cp message/message-service/target/tnb-message.jar ${bin_dir} cp file/file-service/target/tnb-file.jar ${bin_dir} cp content/content-service/target/tnb-content.jar ${bin_dir} cp data/data-service/target/tnb-data.jar ${bin_dir} } ############################################################################### # 构建前端应用 ############################################################################### build_front() { ############################################################################### # 构建 tnbapp 项目 ############################################################################### cd ${proj_dir}/tnbapp npm --registry http://registry.npm.taobao.org i npm run build if [ ! -d ${bin_dir}/tnbapp ]; then mkdir ${bin_dir}/tnbapp fi cp -r dist/* ${bin_dir}/tnbapp } echo "创建 proj 目录和 bin 目录..." create_dirs echo "clone 项目..." clone_proj echo "构建依赖..." build_dependencies echo "修改第三方服务依赖配置..." replace_server_config echo "构建后端应用..." build_backend echo "构建前端应用..." build_front