jenkins实现以gitlab为代码仓库的构建
简介
前一篇随笔是安装jenkins的过程,比较简单,这一次说一下用jenkins配置以gitlab为代码管理仓库的maven项目的完整个构建过程,以及我碰到的一些问题。
由于是maven项目,所以我们的linux系统还要安装maven,当然还有jdk软件安装
1、jdk
我安装的centos预安装了openjdk,这里我想用自己配置的jdk,在官网下了个1.8的,用Xftp工具把tar.gz文件拷贝到linux系统上,我是放在/usr/jdk下面,具体步骤如下#解压缩
tar -zxvf jdk-8u201-linux-x64 .tar.gz //后面的是具体的压缩包名,以实际为准
#配置环境变量
vi /etc/profile
#在文件末尾添加一下内容
export JAVA_HOME=/usr/jdk/jdk1.8.0_201 //路径以实际为准
export JRE_HOME=${JAVA_HOME}/jre //路径以实际为准
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export PATH=${JAVA_HOME}/bin:$PATH安装完后运行java -version查看jdk版本,出现如下表示jdk配置成功
2、安装maven
官网下载maven3的压缩包,拷贝至linux解压缩,配置环境变量#解压缩
tar -zxvf apache-maven-3.1.1-bin.tar.gz //后面的是具体的压缩包名,以实际为准
#配置环境变量
vi /etc/profile
#在文件末尾添加一下内容
export M2_HOME=/usr/maven/apache-maven-3.1.1
export PATH=${JAVA_HOME}/bin:${M2_HOME}/bin:$PATH //path路径在原有jdk的基础上添加maven安装完之后运行mvn -version查看版本,如下表示maven配置成功

修改maven配置
//指定本地仓库地址
<localRepository>/usr/repository</localRepository> //配置阿里云镜像,以防中央仓库下载缓慢
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>3、jenkins安装
jenkins安装我在前一篇有安装讲解配置jenkins
安装gitlab插件,登陆jenkins进入系统管理 -->插件管理,选择可选插件,搜索gitlab,选择安装Gitlab Hook Plugin、GitLab Plugin、Gitlab Authentication plugin,点击直接安装

安装ssh插件,在插件管理搜索Publish Over SSH,点击直接安装

工具配置,配置jdk和maven
进入系统管理 -->全局工具配置


配置全局路径
进入系统管理 --> 系统设置,设置gitlab连接
这里的token是gitlab用户的电子令牌,点击添加,选择token,ID自己定义一个

gitlab生成电子令牌过程
我这里是汉化版,点击设置(setting),弹出用户设置页面,选择左侧的访问令牌(access tokens),按下面填写,最后生成一个token

配置publish over ssh,这是用来jenkins构建项目之后通过ssh发送war包到实际的应用运行环境

到这里就大致配置好了。新建项目进行构建
新建任务


选择之前配置的gitlab仓库连接

配置项目地址

添加构建
选择执行shell脚本的方式构建项目
编写shell脚本

增加构建步骤,用来构建完成之后将编译好的文件通过ssh方式pulish到远程运行环境,我这里是本地的

配置构建之后远程发布的配置

保存操作,配置完成。
构建
点击任务进入任务,点击立即构建,在下面的构建历史选择控制台输出,查看控制台信息



编译成功。
问题
通过shell脚本编译的时候会报maven指令找不到,因为jenkins执行脚本是在/usr/bin下面找的,所以这里有两种方式。
第一种在/usr/bin下面创建mvn命令的软链接
//前面的是maven安装路径
ln –s /usr/maven/apache-maven-3.1.1/bin/mvn /usr/bin/mvn第二种
用我们前面配置的全局工具maven,配置任务的构建时,添加构建步骤选择invoke top-level maven targets,我这里显示的是“调用顶层maven目标”


jenkins实现以gitlab为代码仓库的构建的更多相关文章
- 配置Jenkins使用Gitlab的代码库进行构建
1. 首先确认Jenkins上安装了Git plugin, 以及Subversion plugin Manage Jenkins -> Plugin Manager -> Availabl ...
- jenkins配置到gitlab拉代码
参照: jenkins 从git拉取代码-简明扼要 https://www.cnblogs.com/jwentest/p/7065783.html 持续集成①安装部署jenkins从git获取代码-超 ...
- jenkins +gitlab 自动化代码秒级上线
一,配置脚本 #!/bin/bash #目标服务器IP地址 host=$ #job名称 job_name=$ #包名 name=web-$(date +)) #打包 cd /var/lib/jenki ...
- 再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三(走过路过不要错过)
Gitlab runner 快速搭建CICD pipeline 背景 日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署 ...
- 有手就行——Jenkins介绍 及 Gitlab代码托管服务器安装
Jenkins 介绍 及 Gitlab代码托管服务器安装 Gitlab安装 源码上传到Gitlab仓库 Jenkins介绍 Jenkins 是一款流行的开源持续集成(Continuous Integr ...
- jenkins如何获取gitlab上的代码
如何安装jenkins和gitlab我就不重复了,请自行搜索我的博客 那么,jenkins如何获取gitlab上的代码呢? 具体配置步骤如下 1.在gitlab上配置个人访问令牌.注意事项:姓名那里需 ...
- jenkins与gitlab集成,分支提交代码后自动构建任务(六)
一.在gitlab中创建token 复制token,此token只显示一次:6SB8y4jt31NnYG5-nWoi 二.在gitlab上为项目创建trunk分支 三.在jenkins中配置gitla ...
- GitLab企业级代码管理仓库
原文:https://www.cnblogs.com/wsnbba/p/10171052.html 使用GitHub或者码云等公共代码仓库 使用GitLab私有仓库 GitLab是什么? 是一个用 ...
- 使用terraform 进行gitlab 代码仓库批量迁移
gitlab 的代码是在文件目录中,这个对于批量迁移很简单,只需要copy 文件夹(但是对于不同gitlab server 可能需要重新设置目录权限) 几个问题 大批量仓库tf resource问 ...
随机推荐
- 浅谈.Net异步编程的前世今生----APM篇
前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...
- Django:Python3.6.2+Django2.0配置MySQL
持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...
- MIP 技术月报(4月):支持熊掌号登录;优化页面悬浮元素
之前由MIP团队维护的<移动 Web 加速技术月报>从本期开始,正式升级为<MIP 技术月报>,与以往不同的是,<MIP 技术月报>将会与大家分享包含移动加速技术以 ...
- 从一到万的运维之路,说一说VM/Docker/Kubernetes/ServiceMesh
摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说 ...
- 那些年我们一起踩过的Dubbo"坑"
前言 微服务架构在如今的9102年已经不是什么新鲜的话题了,但是怎么做好微服务架构,却又是一个永恒的话题.比如服务粒度的划分,怎么控制好粗细?服务划分后,对于项目的部署会有什么改变?... 这会是一 ...
- C#-Xamarin的Activity传值与Fragment引用
前言 我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器. 在Xamarin里子页面为Fragment,翻译过来是片段的意思. Fragment 下面我们来学习 ...
- 激活效能,CODING 敏捷研发模块上线
昨晚,巴黎圣母院失火,而我们当中的许多人都还没来得及去欣赏它的真容.我们曾以为美好的事物会等待我们,伟大的目标也会等待我们.世事无常,唯一不变的就是变化.在软件研发领域,敏捷研发就是这么一个小步快跑来 ...
- arcgis api 3.x for js 入门开发系列二十二地图模态层(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- Android studio 2 版本升级 Android studio 3 版本注意事项
1. compile 需要改成 implementation 或者 api例:implementation 'com.android.support:support-v4:23.4.0'详细规则 ht ...
- 如何用RSS订阅?
本文由云+社区发表 摘要:我们常常会有订阅别人文章的需求,有更新的时候希望能有提醒的功能,RSS就是这样一个订阅的方式.很多网站上看到RSS的入口,点进去以后总是显示一堆的XML代码,我们来看看怎么使 ...