Jenkins自动从git构建Spring boot项目实践

开发工具与奇技淫巧 workingTime 2534℃ 0评论

经过三天的不断尝试,终于成功构建了项目。下面分享一下我的构建过程。

系统环境:Ubuntu 17 ,Jenkins 2.6 ,git 2.14 ,jdk 1.8

git 安装


sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update 
sudo apt-get install git

Jenkins 安装


wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

Jenkins 命令


sudo /etc/init.d/jenkins start|restart|stop

在执行service jenkins start如果出现如下错误:


Starting Jenkins bash: /usr/bin/java: No such file or directory [FAILED]

解决方案点击这里

which java
ln -s 本地java包路径 /usr/bin/java

日志信息: /var/log/jenkins/jenkins.log
项目目录:/var/lib/jenkins/workspace

修改端口号:修改/etc/default/jenkins 文件,将端口从8080更换成8083

Jenkins权限问题

在Ubuntu下,当执行apt-get install方式安装Jenkins的时候,会自动创建jenkins用户,这是一个没有用户目录的账号。

检查了一下,居然在nogroup组中,下面的调整修复了这两个权限问题:

  • 从/etc/group文件中在nogroup中删除jenkins账号

  • 将jenkins账号分别加入到root组中 ,命令:gpasswd -a root jenkins

  • 修改/etc/default/jenkins文件中,


JENKINS_USER=root
JENKINS_GROUP=root

可以修改为root权限运行

安装Jenkins SSH和GIT插件

SSH和GIT的配置

在设置SSH之前,请确保安装

插件

构建spring boot项目配置

在创建maven项目前,请确保安装了:Maven Integration plugin 插件


nohup sh /home/rm/software/shell/stop-jar.sh /home/rm/software/ikang-service.jar  > /home/rm/software/stop-log.log &

停止进程脚本名称,如果不加nohup,会出现


ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]

错误。

启动脚本,如果不加nohup,则会在Jenkins控制太跑进程,无法成功结束。


nohup sh /home/rm/software/shell/start-jar.sh /var/lib/jenkins/workspace/ikang-enterprise-platform/ikang-enterprise-service/target/ikang-enterprise-service-1.0.0-SNAPSHOT.jar /home/rm/software/ikang-service.jar > /home/rm/software/start-log.log &

构建脚本

  • start-jar.sh 启动脚本

#tartup.sh 启动项目
#!/bin/sh
#echo "授予当前用户权限"
chmod 777 $1
#echo "复制jar包文件到 $2"
cp -f $1 $2
echo "执行....."
java -jar $2 
  • stop-jar.sh 停止脚本

#停止jar包
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep -w $1 | grep "java" | awk '{print $2}' `
if [ -n "$pid" ]
        echo "kill $pid"  
then                                                                                                                                                                                          
        kill -9 $pid
fi

更新一个问题

如果SSH用户使用的是非root用户,在build的时候回出现一些问题,请更改如下放配置

nohup命令不生效,请将停止命令和启动命令修改

  • 修改停止脚本处

nohup sh /home/rm/software/shell/stop-jar.sh /home/rm/software/ikang-service.jar  > /home/rm/software/stop-log.log &

上述脚本修改成:

sh /home/shell/stop-jar.sh /home/software/web-everything.jar
  • 修改启动脚本:

nohup sh /home/rm/software/shell/start-jar.sh /var/lib/jenkins/workspace/ikang-enterprise-platform/ikang-enterprise-service/target/ikang-enterprise-service-1.0.0-SNAPSHOT.jar /home/rm/software/ikang-service.jar > /home/rm/software/start-log.log &
BUILD_ID=dontKillMe
nohup sh /home/rm/software/shell/start-jar.sh /var/lib/jenkins/workspace/ikang-enterprise-platform/ikang-enterprise-service/target/ikang-enterprise-service-1.0.0-SNAPSHOT.jar /home/rm/software/ikang-service.jar > /home/rm/software/start-log.log &

Send files or execute commands over SSH 处提示权限不足,则可以删除掉所填内容

转载请注明:R&M » Jenkins自动从git构建Spring boot项目实践

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

备案号:京ICP备14044161号;联系我:rm@rmworking.com