1、gitlab创建java项目
- 略(自行创建)
2、在jenkinse服务器生成ssh key
# ssh-keygen -t rsa
2.1 查看ssh key,复制
# cd /root/.ssh/
# cat id_rsa.pub
3、在gitlab 中配置ssh key
4、在jenkins配置jdk 与 maven
4.1 jdk安装(略)
4.2 下载maven,下载地址
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
4.3 解压、移动到/usr/local下,并配置环境变量
# cp apache-maven-3.6.3-bin.tar.gz /usr/local
# cd /usr/local
# tar -zxvf apache-maven-3.6.3-bin.tar.gz
# mv apache-maven-3.6.3 maven
# rm -rf apache-maven-3.6.3-bin.tar.gz
4.3.1 配置环境变量
export MAVEN_HOME=/usr/local/maven
:$MAVEN_HOME/bin
- 生效
# source /etc/profile
- 查看 mvn版本
# mvn -v
5、jenkins 配置jdk
5.1 安装git,下载地址
# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz
- 将tar包移到/usr/local下,解压,再重命名为git
# tar -zxvf git-2.26.0.tar.gz
5.1.1 git构建时需要的环境
# yum groupinstall "Development Tools"
5.1.2 安装devel包
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
5.1.3 安装git
- 进入git 目录
# make install
5.1.3 配置git的环境变量
:/root/bint/git
5.2 jenkins 配置git
5.3 jenkins 配置maven
6 jenkins安装Git、Gitlab、maven(Maven Integration)、SSH(Publish Over SSH)、Gitlab Hook Plugin插件
7 jenkins配置gitlab
- 将生成的token复制到下面则可
7.1 jenkins配置ssh ,如果ssh key无效 解决参考
8、创建项目
-
到gitlab项目配置webhooks
-
出现以下情况
- 解决:使用
管理员
账号去配置 Settings => Network
![(https://upload-images.jianshu.io/upload_images/20524072-b9ee9ba156e1da81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
-
回到jenkins继续页面配置
- 创建restart.sh脚本
- 脚本内容
echo "===============STOP 服务开始 =============="
pidlist=`ps -ef|grep [打包出来的jar] | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "Java"|grep -v "grep"
if [ "$pidlist" = "" ]; then
echo "no [打包出来的jar] pid alive"
else
echo "[打包出来的jar] Id list :$pidlist"
for pid in ${pidlist}
{
kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi
echo "===============STOP 服务结束 =============="
echo "===============START 服务开始 =============="
JAVA_HOME=[jdk目录]
dir=/opt/jenkins_jars
cd $dir
echo dir=$dir
jar=$(find /lib -type f -name *.jar)
classpath=$dir/*:$dir/lib/*:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
echo classpath=$classpath
echo ---------------------------------------------
nohup $JAVA_HOME/bin/java -classpath $classpath -XX:-UseGCOverheadLimit -Xms1024m -Xmx2048m -jar $dir/[jar名称] > $dir/log/$(date +'%Y%m%d').log &
echo "===============START 服务结束 =============="
- 回来jenkins继续配置
开始测试
1、第一次构建
-
构建完成
当gitlab中对应的项目与jenkins配置触发器对应的分支发生marge事件发生时,会通知jenkins进行构建