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进入欢迎页面,点击系统管理

Jenkins欢迎页面

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

Jenkins管理页面

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

Jenkins全局工具1

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

Jenkins Jdk配置

点击Save,JDK配置完成。

四、在Jenkins配置GIT路径

刚才配置好了JDK,现在我们开始配置GIT。还是打开全局工具配置页面,在JDK的配置下面,可以看到GIT相关的配置。

Jenkins GIT配置

Name处写上别名,叫什么都行,这里习惯性写gitPath 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 "[email protected]"来生成ssh公私钥。注意把邮箱替换成自己的邮箱。生成的时候会有输入框提示 第一次是让你输入文件的地址,第二次和第三次是输出密码。这里全部敲回车,使用默认地址,不设置密码。

生成SSH公私钥

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

获取公钥

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

SSH Key和github关联

ps.这里生成SSHKey是基于linux安装jenkins的,如果你使用的是Docker版,参考Docker版本Jenkins的使用这篇文章的最后一章。

现在Jenkins所在机器的SSH Key和github关联上了,我们回到Jenkins欢迎页面,点击新建

新建任务1

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

新建任务2

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

源码管理

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

Paste_Image.png

配置上git远程仓库地址后,可以看见有错误信息提示没有权限,点击Add按钮,添加证书。注意KindSSH username with private keyPrivate KeyFrom 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

Jenkins配置Gradle

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

配置Gradle脚本1

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

配置Gradle脚本2

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

Gradle构建测试

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

Gradle构建后检查

至此,通过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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/vana/p/9814060.html

时间: 2024-10-13 15:40:37

linux服务器中Jenkins集成git、Gradle持续构建Springboot项目的相关文章

Linux下Jenkins+git+gradle 持续集成环境搭建

一.项目介绍 和 linux 环境搭建 本教程讲解 Linux下Jenkins+git+gradle 持续集成环境搭建,后续会加入 gerrit代码审核 和 robotium自动化测试 1.基本流程如下: androidstudio--  gerrit  --- git(github)   ----jenkins ---gradle ----  robotium  结果 使用AndroidStudio 开发,提交到gerrit进行代码审核,审核后提交给git(可以自己搭建git服务也可以使用gi

Linux服务器中限制FTP用户访问方式

FTP(File Transfer Protocol)协议:是一个用于在计算机间上传.下载文件的协议. FTP工作在客户端/服务器端的模式中. FTP服务器持续监听来自远处客户端的FTP需求,在收到远处客户端的需求后,它负责管理登陆及建立连接.建立会话期间,执行FTP客户端发过来的命令.进入FTP服务器可以用匿名或者鉴权两种方式来管理.出于安全考虑,LINUX中的大部分系统,会考虑采用鉴权模式,即进入/访问FTP服务器,必须用用户名或密码的方式. 因为FTP不是一个安全协议,所以必须尽量被限制.

linux服务器中了一个liun2.3的木马

昨天公司一台服务器突然之间不能ping,ssh无法登陆,从IDC反馈说服务器往外发包,数量巨大,CPU状态显示200%.通过ps aux查看以下进程文件是异常文件: ./liun2.3 /tmp/liun2.3 /tmp/liun2.3h zzta.pl 刚开始以为kill掉这些进程和删掉执行文件就可以了,可是过了几分钟,这个程序又继续执行. 那好吧,就去crontab -l 看有没有定时任务,没有. more /etc/crontab 查看有没在这里定义定时任务.也没有 想了下,既然要执行文件

如何在Linux服务器中隐藏PHP版本

通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此,我会简单描述如何在Linux服务器中隐藏PHP信息. 默认上expose_php默认是开的.关闭“expose_php”参数可以使php隐藏它的版本信息. [[email protected] ~]# vi /etc/php.ini 在你的php.ini, 定位到含有expose_php的那行把On

在linux服务器上装svn版本管理,自动部署代码到项目

在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw3X&pos=1 http://v5sheji.com/archives/setupsvnonlinux.html 1.安装svn服务器端  yum install subversion 从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认 安装成功提示:.....complete! 依次

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记(1)

前言    持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境    我这边建立的标准开发环境如下:    1. Maven做项目管理:    2. Git做代码管理:    3. SpringMVC+Spring+Mybatis搭建的程序框架:    4. Mysql作为数据存储,Druid做

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记

前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境 我这边建立的标准开发环境如下: 1. Maven做项目管理: 2. Git做代码管理: 3. SpringMVC+Spring+Mybatis搭建的程序框架: 4. Mysql作为数据存储,Druid做连接池: 5. unitils作为测

Jenkins+Maven+Git搭建持续集成和自动化部署的配置

前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境 我这边建立的标准开发环境如下: 1. Maven做项目管理: 2. Git做代码管理: 3. SpringMVC+Spring+Mybatis搭建的程序框架: 4. Mysql作为数据存储,Druid做连接池: 5. unitils作为测

Linux服务器搭建jenkins

Linux服务器采用的是阿里云服务器的centOS系统 64位  这个系统没有界面  全部操作过程只能通过明令行的方式. 首先,在操作服务器之前,先在我们当前使用的windows系统中装一些远程控制linux服务器的软件,如果服务器不是远程的,那就省略这些步骤了. 工具软件1:SecureCRT,SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件.这里使用SecureCRT来远程操作linux服务器.安装完成