前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作;本篇文章主要描述Jenkins基础用法

一、Jenkins安装

1、环境部署

下载Jenkins包

注意这里直接下载war文件,以Java服务的形式启动。

  • 环境:war运行
  • 版本:2.289.3
  • 类型:Generic Java package (.war)

启动命令

java -jar jenkins.war --httpPort=8090

启动日志

Jenkins is fully up and running

访问本地端口:8090

该页面会提示初始登录密码的位置,查看该文件中初始密码,并完成登录。

/.jenkins/secrets/initialAdminPassword

安装推荐插件

登录之后先把推荐的插件装上。

创建用户

插件安装完成之后会提示创建用户。

账号:admin  密码:admin

这样初始化完成。

重新启动:restart

Jenkins_url/restart

2、配置与插件

基础配置

打开:Manage-Jenkins选项,配置Global-Tool-Configuration选项:

- 查看JDK安装目录
/usr/libexec/java_home -V - 查看Git安装目录
which git - 查看Maven安装目录
mvn -v

配置组件:JDK、Git、Maven,采用开发环境的组件版本;

插件安装

安装如下插件:

1、Maven插件
Maven Integration plugin 2、Pipeline插件
Pipeline Utility Steps

二、本地Git打包

简介:基于Jenkins完成本地的Git仓库项目打包;

1、新建Item

  • 任务名称:MavLoc,处理本地maven工程;
  • 任务类型:选择构建maven项目;

2、构建记录管理

保持构建的天数:3天,保持构建的最大个数:10个;

3、构建过程

前置Pre-Steps步骤,这里执行一次maven版本查看:

构建Build步骤,这里直接写项目的pom路径,注意执行的maven命令:

clean package -Dmaven.test.skip=true

后置Post Steps步骤,注意选择构建成功后才执行,自行忽略这里shell语法的不入流组合:

#!/bin/bash

BUILD_ID=dontKillMe

# 定义目录
AUTO_PATH=/项目路径/butte-auto-parent/ # 移动Jar包
cd $AUTO_PATH/auto-client/target/
pwd
mv auto-client-1.0-SNAPSHOT.jar $AUTO_PATH cd $AUTO_PATH/auto-serve/target/
pwd
mv auto-serve-1.0-SNAPSHOT.jar $AUTO_PATH # 启动服务
cd $AUTO_PATH nohup java -jar auto-client-1.0-SNAPSHOT.jar &
echo "run auto-client ..." sleep 20s nohup java -jar auto-serve-1.0-SNAPSHOT.jar &
echo "run auto-serve ..."

4、执行构建

上述配置完成后,打开任务页面,执行如下操作:

  • Build Now:执行上面的构建任务;
  • 构建 #ID:查看控制台输出的日志;

这样就可以通过jenkins完成本地项目的打包和启动了。

三、API触发任务

1、用户令牌

简介:通过配置用户API访问的token令牌,脱离jenkins控制台,直接触发构建任务;

进入用户面板的设置选项,配置API Token:

注意这里生成令牌后要立刻复制下来,页面会提示token无法复现。

2、任务令牌

任务配置的构建触发器模块,设置远程构建的令牌:

上面已经给到token的使用方式。

3、脚本触发

通过如下方式,直接触发上述构建任务的流程:

curl http://用户:令牌@Jenkins_Url/job/MavLoc/build?token=任务令牌

这里通过脚本直接请求URL的方式触发流程。

四、打包Git项目

1、配置仓库

创建MavGit任务,这里不做过多的配置,与本地仓库相比,只是把仓库地址换成Gitee地址,只配置仓库url和分支即可,其他采用默认:

因为是开放的仓库地址,所以不用配置账号密码,默认指定master分支,然后执行build构建。

2、查看空间

上面流程执行完后,查看MavGit的工作空间:/.jenkins/workspace/MavGit

这里可以明显发现,仓库的代码已经被pull下来,并且完成了自动打包流程,后续结合shell脚本完成jar启动管理即可。

同系列文章:┃ 服务部署发布灰度模式自动化流程消息中间件改造微服务组件二次浅封装

五、源代码地址

GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note/wikis

自动化集成:Jenkins管理工具详解的更多相关文章

  1. NPM 包管理工具详解,使用教程

    NPM 包管理工具 1.1 定义:什么是 NPM NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具.通过 ...

  2. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  3. valgrind和Kcachegrind性能分析工具详解

    一.valgrind介绍 valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,用于构建动态分析工具的装备性框架.它包括一个工具集,每个工具执行某种类型的调试.分析或类似的任务, ...

  4. 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解

    本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...

  5. Chrome开发者工具详解(5)-Application、Security、Audits面板

    Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...

  6. Chrome开发者工具详解(4)-Profiles面板

    Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...

  7. Chrome开发者工具详解(3)-Timeline面板

    Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...

  8. Chrome开发者工具详解(2)-Network面板

    Chrome开发者工具详解(2)-Network面板 注: 这一篇主要讲解面板Network,参考了Google的相关文档,主要用于公司内部技术分享. Chrome开发者工具面板 面板上包含了Elem ...

  9. Chrome开发者工具详解(1)-Elements、Console、Sources面板

    Chrome开发者工具详解(1)-Elements.Console.Sources面板 Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Netwo ...

随机推荐

  1. 猿猿有责,维持整洁的 Git 提交记录,三个锦囊送给你

    背景 大家都有学习如何规范简洁的编写代码,但却很少学习如何规范简洁的提交代码.现在大家基本上都用 Git 作为源码管理的工具,Git 提供了极大的灵活性,我们按照各种 workflow 来提交/合并 ...

  2. [loj2339]通道

    类似于[loj2553] 对第一棵树边分治,对第二棵树建立虚树,并根据直径合并的性质来处理第三棵树(另外在第三棵树中计算距离需要使用dfs序+ST表做到$o(1)$优化) 总复杂度为$o(n\log^ ...

  3. [SQL]SQL Server 锁表

    -- 查看被锁表: SELECT request_session_id spid, -- 锁表进程 OBJECT_NAME(resource_associated_entity_id) tableNa ...

  4. Python描述符以及Property方法的实现原理

    Python描述符以及Property方法的实现原理 描述符的定义: 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实了__get__(),__set__(),__delete__()中 ...

  5. Flink 是如何统一批流引擎的

    关注公众号:大数据技术派,回复"资料",领取1000G资料. 本文首发于我的个人博客:Flink 是如何统一批流引擎的 2015 年,Flink 的作者就写了 Apache Fli ...

  6. 如何构建自己的KEGG数据库

    本文转自Y叔公众号 自己KEGG数据库好处: 可重复性好 没网也可以进行分析 步骤 1 在KEGG官网找到自己物种的3字符缩写 2 加载Y叔获取kegg.db 的R包 1 ##安装Y叔的包 2 lib ...

  7. MySQL-数据库多表关联查询太慢,如何进行SQL语句优化

    工作中我们经常用到多个left join去关联其他表查询结果,但是随着数据量的增加,一个表的数据达到百万级别后,这种普通的left join查询将非常的耗时. 举个例子:  现在porder表有 10 ...

  8. ansible-playbook 安装redis 主从

    ansible-playbook 安装redis 主从 手动在测试机上安装一遍redis,最好使用utils下面的install_server.sh安装服务,然后将redis的配置文件和init需要的 ...

  9. (转载)java中判断字符串是否为数字的方法的几种方法

    java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  10. 强化学习实战 | 自定义Gym环境之井字棋

    在文章 强化学习实战 | 自定义Gym环境 中 ,我们了解了一个简单的环境应该如何定义,并使用 print 简单地呈现了环境.在本文中,我们将学习自定义一个稍微复杂一点的环境--井字棋.回想一下井字棋 ...