Jenkins自动化构建配置

写在前头

我每次修改代码一点东西,都要进行一个从新发布。从新发布的流程大概以下:html

  • 将最新代码同步上传到git上面
  • Maven打包 mvn clean install
  • 将最新的jar包上传到服务器上面,通常我用 lrzsz 若是遇到网速慢就没办法了
  • 最后执行脚本,运行程序

大概四个步骤,时间最长的就是将jar包上传到服务器上面去了。若是包有问题,还有从新进行上面四个步骤,甚是烦人java

在实习中,无心中接触到了Jenkins自动构建工具,那咱们就来了解一下吧。git

 

Jenkins实践

目的:本地IDEA一旦push了代码,jenkins能自动拉去最新代码,而且自动构建最新代码,发布shell

能够大体分为两个步骤c#

第一步:Jenkins从git拉去最新代码bash

第二步:Jenkins自动构建服务器

彻底是自动化的,不须要人为干预操做。只要IDEA上传代码到git,Jenkins就能帮你自动构建网络

 

第一步

Jenkins从git拉去最新代码并发

  • 首先在Github中设置Webhooks(网络钩子),它能够在检测到push以后,主动向Jenkins发起post请求

 

  • 其次在Jenkins里面配置git的信息

 

  • 最后在每次Jenkins新建项目的时候,配置项目在git的地址,这样就能区分哪一个项目了

 

第二步

Jenkins自动构建并发布代码maven

  • 首先打开项目的配置文件,在项目中配置git的地址

 

  • 其次打开gitHook这个选项(记得必定要勾选)

 

  • 最后在执行shell脚本那里,输入maven命令和构建完要执行的脚本便可

 

Jenkins构建三大坑

  • 第一大坑

Maven执行报错 咱们一般执行Maven命令以下: mvn clean install -Dmaven.test.skip=true

但这样写必报错。由于Jenkins默认会为你加上mvn前缀,,因此你只用

clean install -Dmaven.test.skip=true 便可

  • 第二大坑

Jenkins没有权限去执行shell脚本,被拒绝

能够将Jenkins设置为777,但这是很是不友好的。

具体能够参考如下这篇文章:Jenkins执行脚本提示没有权限的解决办法

  • 第三大坑

Jenkins直接完成构建,会将构建启动的进程,所有杀死,我滴妈呀

BUILD_ID=DONTKILLME,便可防止jenkins衍生进程

具体能够参考如下这篇文章:jenkins 杀死衍生进程

 

Jenkins最终效果以下

因为博客园不支持上传视频,只能把视频放在第三方平台上了

连接以下

Jenkins演示最终效果(点击我)

 

写在最后

Jenkins是真的蛮方便的,只要我上传代码至git,他就一路下来自动拉代码,运行脚本,发布,很是的方便

别看我这样简单的搭建完成了,没试过的能够试试,你会发觉坑仍是不少的。

加油啦!!!

 

附录:

osc.sh的脚本

 1 #!/bin/bash
 2 pid=$(ps -ef | grep com.gdufe.osc.OscApplication | grep 'java' | grep -v grep | awk '{print $2'})
 3 if [ -z "$pid" ]; then
 4  echo 'there are not OscApplication process. starting will be continue.'
 5 fi
 6 if [ -n "$pid" ]; then
 7  echo 'java process id is '$pid
 8  if ps -p $pid > /dev/null
 9  then
10   echo $pid' will be kill'
11   kill -9 $pid
12  fi
13 fi
14 echo 'start OscApplication wait.'
15 nohup java -jar osc.jar com.gdufe.osc.OscApplication  >/dev/null 2>error.log &
16 echo 'finish starting OscApplication'
相关文章
相关标签/搜索