Files
KnowStreaming/build.sh
2023-02-14 11:10:58 +08:00

84 lines
2.1 KiB
Bash

#!/bin/bash
workspace=$(cd $(dirname $0) && pwd -P)
cd $workspace
## TODO const
APPNAME=service-discovery
module=$APPNAME
app=$module
gitversion=.gitversion
control=./control.sh
ngxfunc=./nginxfunc.sh
## function
function build() {
# 进行编译
# cmd
JVERSION=`java -version 2>&1 | awk 'NR==1{gsub(/"/,"");print $3}'`
major=`echo $JVERSION | awk -F. '{print $1}'`
mijor=`echo $JVERSION | awk -F. '{print $2}'`
if [ $major -le 1 ] && [ $mijor -lt 11 ]; then
export JAVA_HOME=/usr/local/jdk-11.0.2 #(使用jdk11请设置)
export PATH=$JAVA_HOME/bin:$PATH
fi
# XXX 编译命令
# mvn clean install -Ponline -Dmaven.test.skip=true -f ../pom.xml
./gradlew -PscalaVersion=2.12 releaseTarGz
local sc=$?
if [ $sc -ne 0 ];then
## 编译失败, 退出码为 非0
echo "$app build error"
exit $sc
else
echo -n "$app build ok, vsn="
gitversion
fi
}
function make_output() {
# 新建output目录
local output="./output"
rm -rf $output &>/dev/null
mkdir -p $output &>/dev/null
# 填充output目录, output内的内容 即为 线上部署内容
(
cp -rf $control $output && # 拷贝 control.sh脚本 至output目录
cp -rf $ngxfunc $output &&
cp -rf ./APP_META $output &&
cp -rf ./APP_META/Dockerfile $output &&
# XXX 解压程序包到output路径
tar -xzvf core/build/distributions/kafka_2.12-sd-2.5.0-d-100.tgz
mv kafka_2.12-sd-2.5.0-d-100 ${output}/service-discovery
# unzip target/${module}.war -d ${output} && # 解压war包到output目录
echo -e "make output ok."
) || { echo -e "make output error"; exit 2; } # 填充output目录失败后, 退出码为 非0
}
## internals
function gitversion() {
git log -1 --pretty=%h > $gitversion
local gv=`cat $gitversion`
echo "$gv"
}
##########################################
## main
## 其中,
## 1.进行编译
## 2.生成部署包output
##########################################
# 1.进行编译
build
# 2.生成部署包output
make_output
# 编译成功
echo -e "build done"
exit 0