Jenkins安装配置及插件安装使用

news2024/12/27 14:18:54

个人理解持续集成:为解决程序代码提交质量低,提交内容导致原有系统的BUG,按时或按需自动编译版本,进行自动化测试。

百度对持续集成的定义:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

为什么写这篇文章:笔者在学习jenkins的过程中遇到了很多坑,且学习过程中好多搜到的资料过于零散,导致学习进度缓慢,想通过这篇文章,能让大家在学习的过程中少走弯路。虽然我预计这篇文章是做不到的,但是能够帮助到几位也是好的,以此为望,大家共勉。

一、Jenkins安装

系统&安装方式

直接使用WAR文

安装包安装

将WAR文件放到WEB容器

Windows系统

难度:低

难度:中

难度:高

Linux系统

难度:低

难度:中

难度:高

Mac系统

难度:低

难度:中

难度:高

笔者推荐直接使用WAR文件,越简单的东西越适合初学者。且笔者在使用安装包安装中,出现过一次无法获取插件列表的情况。

   

Windows下安装:

系统版本

JDK版本

Jenkins版本

Windows10

JDK8

Jenkins1.651

 

  1. 安装JDK:(windows下jdk的安装及环境变量配置百度一下)
  2. 下载安装最新版本Jenkins:
    登陆 http://jenkins-ci.org/ 下载windows版本
    下载的压缩包内含一个.msi程序,直接安装

  1. 访问Jenkins:直接访问Jenkins http://本机IP:8080 (8080为jenkins默认端口号)

 

Linux Ubuntu下安装:

系统版本

JDK版本

Jenkins版本

Ubuntu 14.04LTS 桌面版

Openjdk-7-jdk

Jenkins1.651

Ubuntu安装包安装:

  1. 安装open-JDK:

    sudo apt-get install openjdk-7-jdk

  2. 安装Jenkins:

    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -sudo sh -c 'echo deb Debian Jenkins Packages binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update -y
    sudo apt-get install jenkins -y

  3. 安装位置:

    安装目录:/var/lib/jenkins
    日志目录:/var/log/jenkins/jenkins.log

  4. 启动停止服务:

    sudo /etc/init.d/jenkins start
    sudo /etc/init.d/jenkins stop

  5. 访问jenkins:

    http://本机IP:8080/

直接使用WAR文件:

  1. 安装open-JDK(同上文)
  2. 下载war文件

 

将对应war文件传入linux服务器(以下简单介绍几种传入方式,仅仅提供思路以做百度谷歌之用)

  • 架设FTP服务器
  • Winscp工具传入
  • 虚拟机可用虚拟机增强工具拖入或启动共享文件夹
  • U盘等硬件接入
  • 使用war文件开启服务

Java -jar /home/jenkins.war(wan文件路径) --Port=8080(端口)

  1. 访问jenkins

    http://本机IP:8080/

  2. 将服务加入开机启动

    cd /etc/init.d //切换目录
    vi jenkins.sh //编写shell脚本
    插入java -jar /home/jenkins.war(wan文件路径) --Port=8080(端口)& //后台运行
    chmod 755 jenkins.sh //修改shell脚本权限
    update-rc.d test defaults 95(启动顺序编号) //加入启动项
    update-rc.d -f jenkins.sh remove //删除启动项(需在/etc/init.d目录下执行)

  3. Jenkins的安装目录:

    /root/.jenkins/

  4. 访问jenkins:

    http://本机IP:8080/jenkins/

TomCat+Jenkins:

  1. 下载安装jdk(同上文)
  2. 下载WAR文件(同上文)
  3. 下载安装tomcat

 

  1. 下载tomcat

    http://tomcat.apache.org/download-80.cgi 

  2. 将tomcat安装包传入服务器
  3. 解压安装包

    tar -cvzf apache-tomcat-8.0.12.tar.gz

  4. 复制解压文件到你想要的安装路径

    cp -r apache-tomcat-8.0.12 /目标路径

  5. 进入安装路径,以/opt/tomcat/为例

    cd /opt/tomcat/

  6. 编辑tomcat启动脚本,加入环境变量

    vim ./bin/startup.sh

    加入一下内容,路径改为你自己的环境变量路径

    JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31

    JRE_HOME=${JAVA_HOME}/jre

    PATH=$JAVA_HOME/bin:$PATH

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    TOMCAT_HOME=/opt/apache-tomcat-8.0.17

    ps:需要放在exec "$PRGDIR"/"$EXECUTABLE" start "$@"这一行上边

  7. 编辑catalina.sh文件,加入环境变量,否则jenkins会报找不到Ant错误

    #See the license for the……

    JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31

    Export JENKINS_HOME="/root/.jenkins" 

  1. 将WAR文件放入tomcat安装路径/webapps/目录下
  2. 启动&关闭tomcat

  3.  ./bin/startup.sh

    ./bin/shutdown.sh

  4. Jenkins的安装目录:

    /root/.jenkins/

二、Jenkins配置及插件安装使用简介
   

HTML Publisher Plugin 插件在新的Jenkins版本中会导致打开的网页中无法加载CSS以及无法点击按钮的情况,由于CSP导致,可在Jenkins控制台中执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")以解决此问题。其他由于CSP原因导致的html插件也可用此方法解决。

 

   

插件安装:

安装方式

在线安装

下载后安装

优势缺陷

优势:自动安装依赖

缺陷:安装速度慢

优势:速度快

缺陷:不会自动安装依赖

 

在线安装:

   

  1. 进入系统管理

  2. 进入插件管理

  1. 切换可选插件分页

  2. 选择插件,直接安装

 

若遇到可选插件为空的情况

  • 切换到高级界面

  • 点击立即获取按钮

 

  • 若报错,建议直接重新安装jenkins(查了一天解决办法,放弃了,直接重装好了)

离线安装:

   

  1. 进入插件管理,高级分页

 

上传插件

上传成功后会自动安装

若安装失败请去对应插件页面检查是否安装对应依赖

 

账户安全配置:

   

PS:
如果用户权限配置错误导致无法修改,修改服务器jenkins安装目录下config.xml文件,重启jenkins服务即可。

进入系统管理—Configure Global Security

 

  1. 选择Jenkins专用用户数据库,允许用户注册,保存

  2. 注册用户

  1. 再次进入Configure Global Security
  2. 启动安全矩阵,添加用户,添加权限,保存

 

三、Jenkins的环境变量说明

  • 环境变量列表:

  • - BUILD_NUMBER,唯一标识一次build,例如23;
    - BUILD_ID,基本上等同于BUILD_NUMBER,但是是字符串,例如2011-11-15_16-06-21;当前只有ID
    - JOB_NAME, job的名字,例如JavaoWorld;
    - BUILD_TAG,作用同BUILD_ID,BUILD_NUMBER,用来全局地唯一标识一此build,例如jenkins-JavaHelloWorld-23;
    - EXECUTOR_NUMBER, 例如0;
    - NODE_NAME,slave的名字,例如MyServer01;
    - NODE_LABELS,slave的label,标识slave的用处,例如JavaHelloWorldMyServer01;
    - JAVA_HOME, java的home目录,例如C:\Program Files (x86)\Java\jdk1.7.0_01;
    - WORKSPACE,job的当前工作目录,例如c:\jenkins\workspace\JavaHelloWorld;
    - HUDSON_URL = JENKINS_URL, jenkins的url,例如http://localhost:8000/;
    - BUILD_URL,build的url 例如http://localhost:8000/job/JavaHelloWorld/23/;
    - JOB_URL, job的url,例如http://localhost:8000/job/JavaHelloWorld/;
    - SVN_REVISION,svn 的revison, 例如4;

  • 需要特殊注意的是系统管理,系统设置,高级中3个变量的引用(尤其注意重装jenkins后一定要检查是否与之前Jenkins的一致,哪怕是同一个版本甚至于同一个WAR文件)

四、Jenkins使用

  1. 创建项目,输入项目名称,选择项目类型

 

  1. 根据项目情况输入项目信息

  2. 构建

  1. 查看构建结果(蓝点为成功,红点为失败,Console Output选项为查看构建的log)

五、构建

  • 构建触发器

 

  • 触发远程构建(脚本构建)
  • Build after other projects are built(在其他构建完成后构建本项目)
  • Build periodically(定期构建)
  • Poll SCM(检查代码库)

构建脚本

   

 

    • Execute Windows batch command:添加Dos脚本构建步骤
    • Execute shell:添加shell构建步骤
    • Invoke Ant:添加Ant构建步骤
    • Invoke top—level Maven targets:添加Marven构建步骤
  • 构建后操作

  • E-mail Notification 增加发送邮件配置
  • Publish Html report (HTML Publisher plugin插件),增加查看Html结果配置(绝对路径,相对路径以workspace开始)

六、Jenkins在跨平台使用注意事项

  • 路径:

Jenkins路径格式:
Windows服务器下也支持"/""\"并存模式,推荐使用"/",方便跨平台使用。
PS:看资料是可以,未尝试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/985123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配额 安排

一 常用Tcode 基于Tcode的顺序排列 供应商主数据物料主数据货源清单配额安排采购信息记录采购订单框架协议采购询价/报价采购申请订单收货发票校验物料需求计划BP-供应商主数据MM01 - 物料主数据新增ME01 - 维护MEQ1 - 维护ME11 - 创建ME21N - 创建框架协议-合同&#xff1a…

Qt6_贪吃蛇Greedy Snake

贪吃蛇Greedy Snake 1分析 首先这是一个贪吃蛇界面,由一个长方形边框和一只贪吃蛇组成 默认开局时,贪吃蛇身体只有3个小方块,使用画笔画出 1.1如何移动 对于蛇的移动,有2种方法 在一定时间范围内(定时器),未对游戏…

谷歌 reCAPTCHA 人机验证

一、问题 smogon 论坛注册不成功。输入账号、密码、邮箱后显示 You did not complete the CAPTCHA verification properly. Please try again. 即未通过 CAPTCHA 验证。 二、原因 使用的 CAPTCHA 验证是谷歌的 reCAPTCHA 人机验证,国内无法访问谷歌服务。 三、解决…

分页查询实现

目录 1.实体类 2.Mapper层 2.1.xxxMapper接口 2.2.xxxMapper.xml文件 3.Service层 3.1.xxxService接口 3.2.xxxServiceImpl层 4.xxxController层 5.调用接口 6.总结 1.实体类 与数据库交互和与前端交互的实体类 这个Model是与数据库交互的实体类,其中的…

python调用GPT实现:智能用例生成工具

工具作用: 根据输入的功能点,生成通用测试点 实现步骤 工具实现主要分2个步骤: 1.https请求调用Gpt,将返回响应结果保存为.md文件 2.用python实现 将 .md文件转换成.xmind文件 3.写个简单的前端页面,调用上述步骤接口 详细代…

7个数据科学Python库将为您节省大量时间

7个数据科学Python库将为您节省大量时间 在进行数据科学时,您可能会花费大量时间编写代码并等待计算机运行某些操作。我挑选了一些可以在这两种情况下节省您时间的Python库。即使您只将其中一个库纳入您的工具库,您仍然可以在下次项目工作时节省宝贵的时…

揭示OLED透明屏数据:探索未来显示技术的潜力

OLED透明屏作为一项颇具吸引力的显示技术,以其独特的特点和卓越的画质在市场上引起了广泛关注。 在这篇文章中,尼伽将和大家一起深入探索OLED透明屏的数据,通过具体的市场趋势分析、技术指标解析、应用领域探讨和未来前景展望,为…

【C++基础】实现日期类

​👻内容专栏: C/C编程 🐨本文概括: C实现日期类。 🐼本文作者: 阿四啊 🐸发布时间:2023.9.7 对于类的成员函数的声明和定义,我们在类和对象上讲到过,需要进行…

mac 查看端口占用

sudo lsof -i tcp:port # 示例 sudo lsof -i tcp:8080 杀死进程 sudo kill -9 PID # 示例 sudo kill -9 8080

“搞事情”?OpenAl将于11月召开其首届开发者大会

摘要:OpenAI也要召开它的第一届开发者大会了。这次活动,或许标志着OpenAI向其下一阶段的商业开发迈出了关键一步。 昨天,OpenAI宣布将于11月6日举办其首次开发者大会。在这场名为“OpenAI DevDay”的活动中,OpenAI的技术人员将进行…

欧科云链与HashKey Exchange达成合作,助力香港虚拟资产合规化

继8月10日 欧科云链 与 华为云 达成合作之后, 今天,欧科云链 又与 Hashkey Exchange 共同宣布正式达成合作! 这次与Hashkey达成合作,双方又将在Web3行业中谱写怎样的故事? 9月6日,欧科云链控股有限公司&…

2023 年高教社杯全国大学生数学建模竞赛题目 C 题 蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需求情况每天进…

生物通路数据库收录1600+整合的经典通路

生物通路数据库为科学家提供了关于生物通路的大量信息和资源,特别是在数据整合、信息检索、数据可视化分析、数据交互、生物学研究等方面,积极推动了生物学研究和科学的发展。 世界各地正在创建各种类型的通路数据库,每个数据库都反映了其创…

快递批量查询高手必备的实用工具

在网购日益普及的今天,我们经常需要查询快递的物流信息。但是,传统的查询方式一个一个地输入快递单号,不仅费时费力,还容易出错。有没有一种方法可以批量查询多个快递单号呢?答案是肯定的,今天我们就来介绍…

2140. 解决智力问题;1401. 圆和矩形是否有重叠;901. 股票价格跨度

2140. 解决智力问题 核心思想:动态规划。dp[i]表示解决i-n-1的问题所能获得的最高分数,注意需要倒叙遍历,因为i的状态由后面的状态转移过来的。 1401. 圆和矩形是否有重叠 核心思想:分情况讨论,圆心情况。借用别人一张图说明。 …

JWT-Token升级方案

1. 介绍 JWT是JSON Web Token的缩写,即JSON Web令牌,是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资…

ATFX汇市:美联储褐皮书透露就业市场新动向,美元指数中期多头趋势延续

ATFX汇市:今日2:00,美联储发布褐皮书,关于就业市场,其中提到:全国就业增长乏力,大多数地区的劳动力成本压力增长加剧,企业预计工资增长将在短期内普遍放缓。从7月、8月的非农就业报告当中&#…

数据结构和算法(2):向量

抽象数据类型 数组到向量 C/C 中,数组A[]中的元素与[0,n)内的编号一一对应,A[0],A[1],...,A[n-1];反之,每个元素均由(非负)编号唯一指代,并可直接访问A[i] 的物理地址 Ai s,s 为单…

vue-elementPlus自动按需导入和主题定制

elementPlus自动按需导入 装包 -> 配置 1. 装包(主包和两个插件包) $ npm install element-plus --save npm install -D unplugin-vue-components unplugin-auto-import 2. 配置 在vite.config.js文件中配置,配置完重启(n…