linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用。本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目。
自动构建需要经过如下步骤:从git仓库下载代码、使用Gradle进行构建、使用SSH推送到另一台linux服务器、项目作为linux服务启动。本章将逐条仔细讲解。
一、获得一台linux服务器
要在linux下搞持续构建,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是windows的,搞个虚拟机安装对我这种小白简直是折磨人;这里使用最简单的方式获得一台linux服务器,就是从阿里云上租一台。镜像选择CentOS7.3 64位。

二、准备工作
在开始部署持续构建之前,你需要先安装好必备的软件,包含jdk、git、Gradle、Jenkins。如果你不熟悉这些软件怎么安装,可以查看本人之前发布的教程。传送门:jdk安装、git安装、Gradle安装、Linux下Jenkins安装、Docker版本Jenkins的使用。
另外,你还需要在git仓库中有一份可作为服务启动的springboot代码。不熟悉的同学参考之前发布的教程。传送门使用github管理标准springboot代码。
三、配置Jenkins使用的JDK
登录Jenkins进入欢迎页面,点击系统管理
。

进入管理页面,点击Global Tool Configuration
进入全局工具配置页面。

在全局工具配置页面,我们可以配置JDK、GIT、Gradle。这里我们先配置JDK,点击新增JDK
。

配置好JDK的别名,以及设置JAVA_HOME路径,按照之前JDK安装教程的yum安装方式,JAVA_HOME的路径应该是/usr/lib/jvm/java-1.8.0
。

点击Save
,JDK配置完成。
四、在Jenkins配置GIT路径
刚才配置好了JDK,现在我们开始配置GIT。还是打开全局工具配置页面,在JDK的配置下面,可以看到GIT相关的配置。

Name处写上别名,叫什么都行,这里习惯性写git
;Path to Git executable
这个地方要注意,不是填git文件夹所在路径,需要填写git可执行文件的路径。按照之前教程git安装的手动下载源码安装的方式,此处应该填写/usr/local/git/bin/git
。
点击Save
,GIT配置完成。
五、配置Jenkins使用GIT下载代码
刚才在Jenkins中配置了git,现在开始使用git来下载代码。首先,需要在linux上生成一套SSH Key,并将SSH Key和github相关联。
输入命令ssh-keygen -t rsa -C "test@163.com"
来生成ssh公私钥。注意把邮箱替换成自己的邮箱。生成的时候会有输入框提示 第一次是让你输入文件的地址,第二次和第三次是输出密码。这里全部敲回车,使用默认地址,不设置密码。

现在SSH公私钥生成好了,输入命令tail /root/.ssh/id_rsa.pub
来获取公钥。

复制公钥,到github上打开管理页面关联上。

ps.这里生成SSHKey是基于linux安装jenkins的,如果你使用的是Docker版,参考Docker版本Jenkins的使用这篇文章的最后一章。
现在Jenkins所在机器的SSH Key和github关联上了,我们回到Jenkins欢迎页面,点击新建
。

在新建任务页面,输入任务名,选择构建一个自由风格的软件项目
,点击OK
。

进入任务配置页面,在源码管理选择git。

Repository URL
字段填写git远程仓库地址,你可以从github上找到。

配置上git远程仓库地址后,可以看见有错误信息提示没有权限,点击Add按钮,添加证书。注意Kind
选SSH username with private key
,Private Key
选From the jenkins master ~/.ssh
,点击Add
。

回到源码管理页面,选择刚才添加的证书,错误信息消失标识配置成功。点击保存
。

在项目控制台页面,点击立刻构建
,来测试Jenkins是否可以成功从git仓库下载代码。

等待构建执行结束,在服务器进入Jenkins工程目录/var/lib/jenkins/workspace
。可以看到目录下有文件夹demo-jenkins-service
。进入文件夹,可以看到项目相关代码。

至此Jenkins使用GIT下载代码配置成功。
六、配置Jenkins使用Gradle构建代码
现在我们已经可以通过Jenkins使用git下载代码了,下面需要将代码构建成项目。这里我们使用Gradle工具进行构建。还没有安装Gradle的同学可以参考之前的教程Gradle安装。
再次进入在全局工具配置页面,进行Gradle的配置。name
处写别名,GRADLE_HOME
处填写Gradle安装的根目录,根据之前教程安装的朋友,这里填写/opt/gradle/gradle-3.5
。填写完成后点击Save
。

打开任务,进入任务配置页面,在构建栏目
下,点击增加构建步骤
,选择Invoke Gradle script
。

在Gradle脚本页面,选择Invoke Gradle
,Gradle Version
选择之前配置的gradle,Tasks
输出clean build
。表示需要Gradle先执行clean
命令,在执行build
命令。都填好后,点击保存。

现在使用Gradle构建代码也配置好了,我们来测试一下,在任务页面点击立即构建
,等待执行成功。

执行成功后,进入Jenkins工程目录,发现demo-jenkins-service
文件夹下多出了个build
文件下,里面有构建后的文件,在libs
文件夹下,可以找到构建后的工程文件demo-jenkins-service.jar
。

至此,通过Jenkins使用git下载代码并使用Gradle构建工程成功。
七、配置Jenkins使用SSH插件推送jar包到其他服务器,并启动jar包
现在我们已经可以通过Gradle构建用git下载的代码了,还需要将构建后的jar包推送到其他服务器去运行。Jenkins提供了SSH传输的插件,我们可以使用插件来推送文件。
先来安装SSH插件,从系统管理
进入管理插件
页面。

在可选插件中找到Publish Over SSH
,选中后点击直接安装
。

安装中页面,勾选上安装完成后重启,耐心等待安装完成。

现在插件安装好了,开始配置插件。从系统管理
进入系统设置
页面。

在页面中找到Publish over SSH
,点击增加
。

Name
起一个别名,这里叫aliyun;Hostname
填写服务器ip地址;Username
填写服务器登录用户名;Remote Directory
填写登录后路径;点击高级
打开扩展页面,勾选上使用密码认证,在密码里填写登录用户名对应的密码。

全部填写好后,点击Test Configuration
测试是否可以成功访问服务器,如果填写的信息都正确,应该提示Success
,点击保存
完成访问服务器的配置。

现在设置好了访问服务器,我们来配置把jar包传过去运行。
打开任务,进入任务配置页面,在构建后操作
栏目下,点击增加构建后操作步骤
,选择Send build artifacts over SSH
。

在配置页面填写参数,Name选择我们刚才配置的服务器aliyun
;Source files
输入我们希望上传的包相对于工程根目录的路径,根据Gradle构建的位置,这里应该填build/libs/demo-jenkins-service.jar
;Remove prefix
是移除前缀,这里填写build/libs/
,如果不填的话,插件会把build/libs/demo-jenkins-service.jar
连文件夹一起传过去,填写了就会只传一个demo-jenkins-service.jar
文件;Remote directory
是服务器传接收上传文件的路径;最后Exec command
为上传成功后在服务器上执行的命令。这里我们输入如下命令
chmod 777 /service/demo-jenkins-service.jar
rm -f /etc/init.d/demo-jenkins-service
ln -s /service/demo-jenkins-service.jar /etc/init.d/demo-jenkins-service
service demo-jenkins-service restart
这三行命令的意思是
1.给文件demo-jenkins-service.jar
赋予可执行权限
1.强制删除/etc/init.d/demo-jenkins-service这个快捷方式
2.将/service/demo-jenkins-service.jar这个文件创建一个/etc/init.d/demo-jenkins-service的快捷方式。注:/etc/init.d路径下的可执行文件将被自动注册为linux service。
3.使用service restart命令重启刚注册的service服务。

等待Jenkins构建完成,在浏览器访问该服务的接口。

可以成功访问。
至此,在linux中使用Jenkins集成git、Gradle持续构建Springboot项目完成。
作者:低调的微胖
链接:https://www.jianshu.com/p/eb3cbb34be97
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
linux服务器中Jenkins集成git、Gradle持续构建Springboot项目的更多相关文章
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
linux服务器使用Jenkins+gradle+git打apk包,遇到的错误Gradle build daemon disappeared unexpectedly (it may have bee ...
- 自动化打包 Jenkins 持续集成 Git Gradle MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
- 如何在Linux服务器中隐藏PHP版本
通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此, ...
- Windows连接Linux服务器中MySQL数据库-权限配置
问题描述 在Windows系统中安装了监控MySQL数据库服务器性能的工具Spotlight on MySQL,利用Spotlight连接Linux服务器中的MySQL,进行相关配置如下: 点击& ...
- 如何发布二次开发后的openfire源码到linux服务器中
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...
- Linux服务器中OpenSSH的源码编译与升级
Linux服务器中OpenSSH的源码编译与升级 https://www.oschina.net/question/12_7383
- 在linux服务器上装svn版本管理,自动部署代码到项目
在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw ...
随机推荐
- Python开发之AJAX
一.概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用:一个简单操作 ...
- 2-scala集合
1.集合的数据结构: array.seq .set .map(映射) 2.集合分类 集合分为可变集合和不可变集合(除元组外,元组没有可变和不可变) scala.collection.immutable ...
- concurrent.futures模块 -----进程池 ---线程池 ---回调
concurrent.futures模块提供了高度封装的异步调用接口,它内部有关的两个池 ThreadPoolExecutor:线程池,提供异步调用,其基础就是老版的Pool ProcessPoolE ...
- 安装VMTools工具
1)什么是VMtools VM tools顾名思义就是Vmware的一组工具.主要用于虚拟主机显示优化与调整,另外还可以方便虚拟主机与本机的交互,如允许共享文件夹,甚至可以直接从本机向虚拟主机拖放文件 ...
- 19.纯 CSS 创作一种有削铁如泥感觉的菜单导航特效
原文地址:https://segmentfault.com/a/1190000014836748 感想: 把原元素隐藏,利用伪元素::before 和 ::after 各取上下一半 clip-path ...
- myeclipse项目 不能打开
重启电脑后, myeclipse项目 不能打开了, 之前都是好好的!! 出现: Failed to read the project description file (.project) for ' ...
- Dubbo的学习
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. Dubbo是一款高性能.轻量级的开源Java RP ...
- Mysql 获取表属性
获取表字段信息: select column_name from information_schema.COLUMNS where table_name='表名' nformation_schema. ...
- python day10 数据库(mysql基础)
一.数据库的概念 数据:事物的特征 数据库的本质是:通过套接字进行通信,来读存数据的一种软件,由于每次开发人员写程序都得写数据的套接字,所以诞生了数据库这个软件,减少重复劳动.(sql语句通用) 数据 ...
- SRM-供应商关系管理-组织模式
https://wiki.scn.sap.com/wiki/display/SRM/PPOMA_BBP 供应商关系管理 ... 组织模式 PPOMA_BBP 跳到元数据结束 由Ivy Li ...