1、在jenkins上安装git:

因为jenkins需要在gitlab上拉取代码;

具体的git安装,参考"4、git和gitlab的配置——4.2、git编译安装:";

2、在gitlab上配置jenkins服务器上的ssh key:

(1)在jenkins服务器上生成秘钥对:

ssh-keygen

(2)在gitlab上配置jenkins的公钥:

这样jenkins服务器可以连接gitlab上所有的项目;

也可以为jenkins服务器分配一个gitlab用户,在这个gitlab用户上配置jenkins服务器上的公钥,以达到限制jenkins访问项的目的;

3、在jenkins上构建php项目:

将gitlab上的代码发布到服务器上;

(1)创建项目:

1)

2)

(2)配置:

1)配置丢旧的构建:

2)配置 ssh 方式连接gitlab仓库:

A、补充:配置http方式连接gitlab仓库:

a、设置http连接gitlab的用户:

b、设置http连接url:

3)设置构建执行脚本:

这里主要是发布代码的脚本;

(3)发送jenkins服务器的公钥:

一般是将jenkins服务器上的公钥发送到web服务器上,方便构建代码后无密码便可发布;

这里用作实验,将构建后的代码发送到gitlab服务器上;

ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.90

(4)在web服务器上创建web站点目录:

mkdir -p /data/www/php

(5)构建:

提示:构建时,jenkins会从gitlab上git clone master 仓库到本地的“/var/lib/jenkins/workspace/”目录下,自动生成以

jenkins工程名为名的目录;

(6)查看构建信息:

此时查看web服务器目录下,构建后的web代码已经发布;

ls /data/www/java/

index.html index.php readme

4、构建maven java项目:

(1)maven介绍:

将java项目编译后再发布;

jenkins需要安装Maven Integration plugin;

maven主要是用来解决导入java类依赖的jar,编译java项目主要问题;

maven本地存在仓库,构建时会先从本地仓库查找jar包,如果没有再从远程中央仓库下载jar包存储到本地,然后再利用存储到

本地的jar包进行构建;

(2)maven安装和配置:

1)下载软件包:

cd /tools/

https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

2)解压并安装:

tar -xzf apache-maven-3.6.0-bin.tar.gz

cp -a /tools/apache-maven-3.6.0/ /application/maven-3.6.0/

ln -s /application/maven-3.6.0/ /application/maven

3)查看maven的版本号:

/application/maven/bin/mvn --version

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)

Maven home: /application/maven

Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el

7_6.x86_64/jreDefault locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

4)修改仓库配置:

mkdir /data/maven/

#创建maven本地仓库存储目录;

vim /application/maven/conf/settings.xml

<mirror>

<id>aliyun-maven</id>

<mirrorOf>central</mirrorOf>

<name>aliyun-maven</name>

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

</mirror>

#默认的中央仓库比较慢,这里改成阿里的maven仓库;

<localRepository>/data/maven</localRepository>

#更改maven的本地仓库路径,默认的仓库路径是${user.home}/.m2/repository;

(3)设置maven所需要的全局参数:

1)maven settings.xml文件路径配置:

2)java_home配置:

提示:yum安装的jdk查看java_home的方法:使用"whereis javac"命令找到javac的位置,然后使用"ls -l"命令找到最后

没有软连接指向的目录;

3)maven_home配置:

(4)创建项目:

(5)项目配置:

1)丢弃旧的构建配置:

2)git仓库配置:

提示:需要将jenkins的公钥加入到gitlab root用户的ssh-key中;需要在gitlab中上传一个使用maven开发的程序包;

3)构建配置:

参数说明:

clean install -D maven.test.skip=true

clean #移除所有上一次构建生成的文件;

install #将包安装至本地仓库,以让其它项目依赖;

maven.test.skip #跳过测试;

4)配置shell脚本发布代码:

A、补充:通过war包发布代码:

a、前提条件:

tomcat需要配置manager服务并创建tomcat管理员用户;

需要在jenkins上安装插件:Deploy to container Plugin;

b、"deploy war/ear to container"配置如下:

(6)构建工程:

1)构建:

2)查看控制台输出:

(7)提示:

如果按照版本进行构建,需要在gitlab中对代码进行打标签,且版本号要和pom.xml中的版本号保持一致;

11、gitlab和Jenkins整合(1)的更多相关文章

  1. 11、gitlab和Jenkins整合(2)

    5.补充: (1)构建说明: 1)Jenkins会基于一些处理器任务后,构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现. 2)它们可能包括单元测试(JUnit).覆盖率(Cob ...

  2. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  3. CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...

  4. Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  5. gitlab+gerrit+jenkins持续集成框架

    1.持续集成之gitlab+gerrit+jenkins 1.1. GitLab 1.1.1. 简介 GitLab 是一个使用使用Ruby on Rails搭建的,用于仓库管理系统的开源项目.使用Gi ...

  6. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  7. gitlab 与 jenkins 关联

    一.搭建 gitlab :https://www.cnblogs.com/carriezhangyan/p/10729158.html 二.搭建jenkins :https://www.cnblogs ...

  8. 持续集成之④:GitLab触发jenkins构建项目

    持续集成之④:GitLab触发jenkins构建项目 一:目的为在公司的测试环境当中一旦开发向gitlab仓库提交成功代码,gitlab通知jenkins进行构建项目.代码质量测试然后部署至测试环境, ...

  9. django之创建第11个项目-页面整合

    目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...

随机推荐

  1. 【转载】复制文件到已存在的Jar

    复制文件到已存在的Jar 技术标签: Ant  OSGI  Eclipse  脚本  配置管理   问题 这两天在写一个小东西.这个小东西是一个大东西的一部分.其实也就是其中的一两个类.而这个大东西需 ...

  2. Zabbix agent端 配置

    Zabbix agent端 配置 agent端环境 zabbix-client:RHEL8 IP:192.168.121.11 一.安装 Zabbix 源 [root@zabbix-client ~] ...

  3. Linux 系统优化-workstation实践

    Linux 系统优化 关闭SELinux [root@workstation ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/seli ...

  4. python基础之包、模块、命名空间和作用域

    一.模块介绍 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能. 模块的作用: (1)从文件级别组织程序,更方便管理:随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一 ...

  5. 惊奇发现KEIL也可以C++编译了

    在Github上面浏览下载的一个工程,可以用KEIL打开,但是我竟然找不到mian函数.找了一圈发现是用到了面向对象的编程方法,那就必须支持C++,他怎么实现的呢? 看配置工程:明显的一个不一样 -- ...

  6. 1 理解Linux系统的“平均负载”

    什么是平均负载 我们知道使用top或uptime可以用来了解系统的负载情况. uptime 2 02:34:03 up 2 days, 20:14, 1 user, load average: 0.6 ...

  7. 国外DIY网站

    https://site.douban.com/109950/widget/notes/250072/note/248811721/

  8. 关于Linux的一些基础命令

    今天学习scala语言,在linux系统上运行,发现对Linux的命令不太熟悉,为了熟悉掌握,也便于查询,这些命令主要是为了收藏备用,,希望能帮助到大家 linux20个常用命令是: 1.显示日期的指 ...

  9. Ubuntu 20.04 Docker 安装并配置

    前言 Docker 的使用能极大地方便我们的开发,减少环境搭建,依赖安装等繁琐且容易出错的问题. 安装 Docker Ubuntu 20.04 官方 apt 源中就有 Docker,我们可以直接通过 ...

  10. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

    Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...