• 简介

    前一篇随笔是安装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为代码仓库的构建的更多相关文章

  1. 配置Jenkins使用Gitlab的代码库进行构建

    1. 首先确认Jenkins上安装了Git plugin, 以及Subversion plugin Manage Jenkins -> Plugin Manager -> Availabl ...

  2. jenkins配置到gitlab拉代码

    参照: jenkins 从git拉取代码-简明扼要 https://www.cnblogs.com/jwentest/p/7065783.html 持续集成①安装部署jenkins从git获取代码-超 ...

  3. jenkins +gitlab 自动化代码秒级上线

    一,配置脚本 #!/bin/bash #目标服务器IP地址 host=$ #job名称 job_name=$ #包名 name=web-$(date +)) #打包 cd /var/lib/jenki ...

  4. 再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三(走过路过不要错过)

    Gitlab runner 快速搭建CICD pipeline 背景 日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署 ...

  5. 有手就行——Jenkins介绍 及 Gitlab代码托管服务器安装

    Jenkins 介绍 及 Gitlab代码托管服务器安装 Gitlab安装 源码上传到Gitlab仓库 Jenkins介绍 Jenkins 是一款流行的开源持续集成(Continuous Integr ...

  6. jenkins如何获取gitlab上的代码

    如何安装jenkins和gitlab我就不重复了,请自行搜索我的博客 那么,jenkins如何获取gitlab上的代码呢? 具体配置步骤如下 1.在gitlab上配置个人访问令牌.注意事项:姓名那里需 ...

  7. jenkins与gitlab集成,分支提交代码后自动构建任务(六)

    一.在gitlab中创建token 复制token,此token只显示一次:6SB8y4jt31NnYG5-nWoi 二.在gitlab上为项目创建trunk分支 三.在jenkins中配置gitla ...

  8. GitLab企业级代码管理仓库

    原文:https://www.cnblogs.com/wsnbba/p/10171052.html   使用GitHub或者码云等公共代码仓库 使用GitLab私有仓库 GitLab是什么? 是一个用 ...

  9. 使用terraform 进行gitlab 代码仓库批量迁移

      gitlab 的代码是在文件目录中,这个对于批量迁移很简单,只需要copy 文件夹(但是对于不同gitlab server 可能需要重新设置目录权限) 几个问题 大批量仓库tf resource问 ...

随机推荐

  1. 实战经验丨CTF中文件包含的技巧总结

    站在巨人的肩头才会看见更远的世界,这是一篇技术牛人对CTF比赛中文件包含的内容总结,主要是对一些包含点的原理和特征进行归纳分析,并结合实际的例子来讲解如何绕过,全面细致,通俗易懂,掌握这个新技能定会让 ...

  2. <转>快速找到整数约数集方法<python><stackoverflow>

    [背景] 我需要从N遍历到1,当我已经判断N不符合要求时,我知道N的所有约数也是不符合的,所以所有N的约数也不用遍历.因此,对于遍历的每个N,我需要快速找到它的所有约数,放到一个集合里面,而当我遍历到 ...

  3. go语言调度器源代码情景分析之四:函数调用栈

    本文是<go调度器源代码情景分析>系列 第一章 预备知识的第3小节. 什么是栈 栈是一种“后进先出”的数据结构,它相当于一个容器,当需要往容器里面添加元素时只能放在最上面的一个元素之上,需 ...

  4. Vim中设置括号自动补全

    1.打开用户Vim配置文件:~/.vimrc vim ~/.vimrc 2.输入以下配置: set tabstop=4 inoremap " ""<ESC>i ...

  5. centos下python3.6安装uwsgi失败。

    报错信息(省略大部分): plugins/python/uwsgi_python.h::: fatal error: Python.h: No such file or directory #incl ...

  6. 关于uni-app框架的学习-1

    根据官方文档进行学习Uni-APP, 再次过程中,记录一些需要熟悉的内容,有不合适的地方,见着都可知道,----我是一个小白,小白,小白 官网地址:https://uniapp.dcloud.io/ ...

  7. gulp源码解析(一)—— Stream详解

    作为前端,我们常常会和 Stream 有着频繁的接触.比如使用 gulp 对项目进行构建的时候,我们会使用 gulp.src 接口将匹配到的文件转为 stream(流)的形式,再通过 .pipe() ...

  8. 查找最近公共祖先(LCA)

    一.问题 求有根树的任意两个节点的最近公共祖先(一般来说都是指二叉树).最近公共祖先简称LCA(Lowest Common Ancestor).例如,如下图一棵普通的二叉树. 结点3和结点4的最近公共 ...

  9. MySQL 中 update 修改数据与原数据相同会再次执行吗?

    阅读本文大概需要 2.8 分钟. 作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执 ...

  10. 知名区块链人脸识别公司iFace Chain [爱妃链] 支招,如何防止钱包数字币被盗...

    最近众多钱包发行方跑路频发,让非常多的用户蒙受巨大经济损失,知名区块链人脸识别公司iFace Chain [爱妃链] 前日做客某区块链媒体为网友支招,如何防止钱包数字币被盗. 那么,用户怎么降低Tok ...