首先安装golang

# 安装golang
 -  下载对应项目的版本,并解压
    tar -C /usr/local/ -xzf go1.10.5.linux-amd64.tar.gz

 -  配置bin目录
    export PATH=$PATH:/usr/local/go/bin

编写编译脚本

重点是声明GOPATH和将vendor中的文件移动到项目代码平级

脚本如下:


#------------------------------------------------------------
#     机器:root@test
#     目录:/root/gitlab/
#     执行:
#     参数:第一个参数为projectName,第二个参数为tag名称,如果为空则....
#     /root/gitlab/buildDir/${projectName}_buildDir 为编译目录
#     /root/gitlab/${projectName} 为git拉取代码目录
#
#------------------------------------------------------------
echo "目前切换tag,没有获得最新代码!!!目前删除目录然后拉取操作替代"
projectName=goProject1
tag=goProject1.1.3.0.20200828D1

base_dir=/root/gitlab
build_dir=${base_dir}/buildDir
project_build_dir=${build_dir}/${projectName}_buildDir/src/${projectName}

echo "--------按${tag}拉取最新代码--------"
cd /root/gitlab
git clone --branch xxx分支 ssh://git@git.test.cn:9999/recommend/${projectName}.git
cd  ${base_dir}/${projectName}
git checkout ${tag}

echo "--------拷贝代码到编译目录--------"
echo "--重新创建编译目录--"
cd ${build_dir}
rm -rf ${build_dir}/${projectName}_buildDir
mkdir -p  ${project_build_dir}

echo "--将项目代码拷贝到编译目录 "
cp -r ${base_dir}/${projectName}/* ${project_build_dir}

echo "--将vendor文件夹内容移动到src目录下,保持与项目代码平级--"
mv ${project_build_dir}/vendor/*  ${build_dir}/${projectName}_buildDir/src

echo "--------声明GOPATH--------"
export GOPATH=${build_dir}/${projectName}_buildDir

echo "--------进入编译目录--------"
cd ${project_build_dir}

echo "--------开始编译--------"
go build