jenkins java常用插件下载,Jenkins简单介绍以及插件入门

Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署,将以前编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址,将代码拉取到jenkins宿主机上,进行编译、打包和发布到web容器中。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第三方构建工具,同时跟git、svn无缝集成,也支持直接与github直接集成。

睿云的WiseBuild也是基于jenkins进行的开发,在下面会看到很多和WiseBuild相似之处。

安装--->> Jenkins官网http://jenkins.io/下载war包

我们将重点介绍jenkins使用和插件。

Jenkins使用

java -jar jenkins.war

或者将war放到web容器中,启动web容器。

启动war包,会自动将war包解压到~/.jenkins目录下,并且生成一些目录和配置文件,我们在jenkins中配置的job也会保存到这个目录下 。

打开浏览器,输入localhost:8080 就可以访问到jenkins的web界面了。

2307d23476ddfc4759df2414d90d4539.png

新建项目

用个小例子简单示范一下jenkins的使用。

025874a37eaa3116d4bcec255798c7da.png

源码配置

将源码信息配置上去,我选择一个github上面的项目,如果源码管理中没有git这个选项,只需要到系统管理中添加git这个插件即可。

402839ed05bbdbabbd04e79e05903378.png

构建命令

738b5eed9870f3d1c249a152f90add8e.png

在构建阶段输入以下命令:

cd ${WORKSPACE} && ./gradlew build && mv ${WORKSPACE}/docker/jpetstore.war /usr/local/tomcat9/webapps

该命令分为三个部分:

●cd ${WORKSPACE} WORKSPACE是jenkins的定义的环境变量,代表该项目对应的文件路径,该项目检出的源码也是该目录。类似的环境变量还有BUILD_NUMBER, BUILD_ID, JOB_NAME, JENKINS_HOME等等。

●./gradlew build使用gradle 执行构建命令,将检出的源码编译打包为war包,这里我们使用的构建工具是gradle,如果是使用maven,可以mvn clean package。

●mv {WORKSPACE}/docker/jpestore.war /usr/local/tomcat9/webapps/

将打包好的war包手动放到tomcat的webapps目录下,以便Tomcat能启动该项目了。

最后,点击保存回到主面板上。

构建

点击右边的立即构建:

fc243d2b86d5a8404748b509c0530be6.png

开始执行构建,可以看见构建的进度,旁边的#12 就是本次构建的构建号(BUILD_NUMBER)。

6fd54433a727d0474279891c92912e6f.png

也可以在查看console output。

1d45dcc41936358b650c09e012a64599.png

console output 会显示出本次构建的一些日志信息。

ef9e32b390cbf0e86e75918ecb6605ce.png

这里我们web容器和jenkins都是在同一台服务器上,可以利用shell命令来进行手动部署,如果jenkins的宿主机和web服务器不是同一台,我们也可以利用gradle和maven的部署功能,例如使用mvn deploy来将项目部署到远程服务器上 。

到此,我们的一个持续集成的一个项目就已经搭建好了,现在一旦我们对代码修改进行提交,然后jenkins就会获取最新的代码然后按照我们上面配置的命令进行构建和部署。

Jenkins插件

在前面我们看见jenkins可以支持git, svn, maven等很多功能,这些都是Jenkins的插件,jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用,接下来就介绍一下插件的原理以及我们怎么通过写一个自己的插件来满足我们的需求。

扩展点

但是jenkins有很多的扩展点(ExtensitonPoint),它是Jenkins系统的某个方面的接口或抽象类。这些接口定义了需要实现的方法,而Jenkins插件需要实现这些方法,也可以叫做在此扩展点之上进行扩展Jenkins。有关扩展点的详细信息,请参阅Jenkins 官方ExtentionPoints文档。通过这些扩展点我们可以写插件来实现自己的需求。

下面是一些常用的扩展点:

Scm :代表源码管理的一个步骤,如下面的Git,Subversion就是扩展的Scm。

95c0d7c84b9ddb69a1b749b31389dee4.png

Builder : 代表构建的一个步骤,如下图中在构建过程中,我们可以增加一个构建步骤,而每一个选项都是对应一个Builder,在每一个Builder中都有自己不同的功能。如Execute shell,这就是一个ShellBuilder,意味着在构建过程中会执行一个shell命令。

4c4b3d8210ced497307ec1818dd820b8.png

Trigger:代表一个构建的触发,当满足一个什么样的条件时触发这个项目开始构建。比较常用的触发就是当代码变更时触发,如果我们需要实现一些比较复杂的触发逻辑,就需要扩展Trigger这个扩展点。

ffb3e72601b6f56ef5b4caa0de9bbb43.png

Publisher:Publisher代表一个项目构建完成后需要执行的步骤,如选项中的E-Mail Notifaction就是一个Publisher插件,选择这个选项后,当项目构建完成,就会使用email来通知用户,假如想要在项目构建完成后将构建目标产物发送到服务器上,则可以扩展此扩展点。

c2b291a970300e767b06e4c32217647e.png

上面简单描述了一下插件和扩展点,接着我们可以搭建一个插件的开发环境。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

21/212>

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

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

相关文章

linux安装python3.7的步骤_Linux 安装python3.7.3

我这里使用的是Redhat6.5,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自带的python版本 有一些系统命令时需要用到python2,不能卸载 1、安装依赖包 1&…

php session 保存数组,php - 我用ajax设置的SESSION数组变量没有被保存?

我有一个链接,当点击时,调用jquery ajax函数从php页面获取数据,并将返回的html放在一个弹出式div中。返回的html实际上是一个表单。在PHP中,我正在查询数据库以获取与用户规格匹配的许可证列表,并将它们保存在一个数组…

python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图

作者 | Jay Alammar转载自 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的:这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图。 八…

java嵌入groovy脚本,java-如何捕获传递给Groovy脚本的参数?

它与Java非常相似,您可以使用相同的Java语法。 例如。class TestExecutor {public static void main(def args) {println("Printing arguments");for(String arguments : args) {println (arguments);}}}运行它,您应该看到已打印的参数C:\User…

php人物行走,非常震撼的纯CSS3人物行走动画

今天分享给大家的是一个用纯CSS3实现的人物行走动画,在没有使用JavaScript的情况下,用CSS3技术将人物行走的姿态描绘得非常逼真。其实动画实现的原理也是比较简单的,将人物行走时的状态分割成多张图片,然后利用CSS3的动画属性将这…

python实现简易聊天需要登录_python编写简易聊天室实现局域网内聊天功能

本文实例为大家分享了python实现局域网内聊天功能的具体代码,供大家参考,具体内容如下 功能: 可以向局域网内开启接收信息功能的ip进行发送信息,我们可以写两段端口不同的代码来实现在一台电脑上与自己聊天. 关键点: 要想实现此功能必须将程序的端口固定…

php jquery 弹窗提示框,jQuery实现消息弹出框效果

本文实例为大家分享了jQuery消息弹出框的具体代码,供大家参考,具体内容如下效果图实现代码.showMessage {padding: 5px 10px;border-radius: 5px;position: fixed;top: 45%;left: 45%;color: #ffffff;}.showMessageSuccess {background-color: #00B7EE;}…

python定义字符串数组_python数组声明

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如何在python? 我无法在文档中找到对数组的任何引用... 我正在制作一个小程序,在静态数组上保存…

asurerp可以导出php文件吗,编译前的准备 - PHP 扩展开发及内核应用相关内容 - UDN开源文档...

编译前的准备从一个PHP程序猿,到一个想为PHP开发扩展的程序猿,此间的进化有一步是跳不过去的,那就是你必须熟知如何编译PHP的源码。*nix ToolsC语言的编译器是我们使用C语言的必备工具,你的系统应该已经自带了一种C语言的编译器&a…

python函数定义中参数列表里的参数是_python函数定义中的参数说明

原博文 2020-05-23 07:50 − > 描述函数定义时 涉及到的 位置参数,默认参数,关键字参数,可变参数等的概念及用法 ## 1 示例代码#! /usr/bin/env python # -*- coding: UTF-8 -*- import logging def get_default_logger(): log... 相关推荐…

tabulate matlab,matlab中用于统计矩阵数据频率,出现次数的函数

第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数、频率【例1】统计数值型数组中各元素出现的频数、频率>> x [2 2 6 5 2 3 2 4 3 4 3 4 4 4 4 2 26 0 4 7 2 5 8 3 1 3 2 5 3 6 2 3 54 3 1 4 2 2 2 3 1 5 2 6 3 4 1 2 5];>&…

python3中map的用法_python3中map()函数用法

1.map语法: map() 函数语法:map(function, iterable, …) 简单来说,map()它接收一个函数 f 和一个 可迭代对象(这里理解成 list),并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 def square…

我的世界手机有PHP的开服器下载,【BDS】MC基岩版官方开服器Windows版插件开发包...

您尚未登录,立即登录享受更好的浏览体验!您需要 登录 才可以下载或查看,没有帐号?注册(register)xMC基岩版官方开服器Windows版插件开发教程2019年5月22日 作者:Player前言:MC基岩版官方开服器(BDS)自发布至…

c++ 协程_用yield实现协程

上一篇 理解python中的yield关键字 介绍了使用yeld实现生成器函数,这一篇我们来继续深入的了解一下yield,用yield实现协程。先来解答一下上一篇留下的问题:下面的代码为什么第二次调用next打印None呢?def 事实是这样的&#xff0c…

visualsvn php,VisualSVN 手动记录访问日志

VisualSVN 手动记录访问日志VisualSVN 是一个可以免费使用的,SVN服务器端软件,基于 apache 。可以实现 http https 多种SVN 发布功能。VisualSVN 默认是没有日志记录功能,需要手动打开。首先从apache下载,apache 2.2 windows 版&a…

pandas 第一行_用Excel表格带你学习pandas最核心的处理操作,不再害怕条件统计

此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的)经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得…

网页载入动画 php,网站页面加载动画代码

有时候网站服务器带宽不好或者用户网络不好,网站速度打开就会比较慢,那么用户等待就会比较无聊,下面准备了一个loading页面,可以在网站文件未完全加载完毕之前展示。HTML部分,放在body标签下面(最好是最靠近body)正在加…

ehcache缓存原理_贼厉害,手撸的 SpringBoot缓存系统,性能杠杠的!

缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。一、通用缓存接口1、缓存基础算法FIFO(First In First Ou…

ecshop适应在php7,ecshop适应PHP7的解决方法

if (!defined(DITAN_ECS)){die(Hacking attempt);}class cls_mysql{var $link_id NULL;var $settings array();var $queryCount 0;var $queryTime ;var $queryLog array();var $max_cache_time 300; // 最大的缓存时间,以秒为单位var $cache_data_dir…

angular 字符串转换成数字_Angular日期在TypeScript中格式化转换应用

组件模板中我们常常使用Angular内置管道DatePipe将其日期格式化,如同{{ startTime | date:yyyy-MM-dd }}这般操作,即可转换为字符串格式。那么在TS文件中我们也可以通过DatePipe或formatDate方法将其格式化。Angular日期在TypeScript中格式化转换应用​w…