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界面了。

新建项目

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

源码配置

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

构建命令

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

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能启动该项目了。

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

构建

点击右边的立即构建:

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

也可以在查看console output。

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

这里我们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。

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

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

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

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

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

21/212>

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

  1. Java常用的5大框架介绍!

    作为常年霸榜的头牌编程语言,Java的火热程序已经毋庸置疑,Java框架在Java开发中的作用也是不可忽视.下面,小千给大家具体介绍一下Java常用的5大框架,希望对正在学习Java的人有所帮助. 1 ...

  2. 常用服务器软件的简单介绍

    本文主要对常用的服务器软件的概念.区别以及适用场景做简单介绍! 一.通常来讲,只要是运行在服务器之上的,绑定了IP地址的,并且用一个端口来监听用户请求的,进而提供服务的软件,我们都可以称之为[服务器软 ...

  3. jenkins java版本_安装jenkins几个版本貌似都有问题

    安装了1.x最后一个版本1.651.3,页面可以进去,但是报错如下 Apr 13, 2017 1:50:23 PM hudson.triggers.SafeTimerTask run SEVERE: ...

  4. java标识符_Java标识符的简单介绍

    各位小伙伴大家好,这次小编要介绍一下Java的标识符,那么,问题来了,什么是标识符呢?下面,小编来给大家解答吧,java标识符就是在java程序中给变量,类,方法等命名的符号.(关于类和方法一时半会说 ...

  5. web前端之JavaScript的插件下载指令及介绍、npm、install、save、require

    目录 1.扁平结构数据与树形结构数据之间的转换 2.防抖与节流 3.浮点数的加减乘除 4.检测输入的数据格式和类型是否正确,是否存在空数组或空对象 5.重名自增 6.根据后缀名渲染对应图标 1.扁平结 ...

  6. java常用算法之冒泡排序简单例子

    为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...

  7. 常用的色彩体系简单介绍

    一般来说现在普遍认可的4大色彩体系是德国奥斯瓦尔德颜色体系.瑞典NCS色彩体系.美国Munsell颜色体系.日本PCCS颜色体系.但是自制世界标准的只有三家,分别是美国的曼彻尔(munsell)德国的 ...

  8. Firefox功能插件下载与功能介绍

    Firefox功能插件下载与功能 所有组件通过如下方法搜索添加: User-Agent Switcher 更改用户使用的浏览器版本信息 在BP中查看 Flagfox 显示描述当前服务器位置的国旗 Wa ...

  9. java连接Access数据库的简单介绍

    1.打开Access2013 2.单机空白桌面数据库,这里是根据需求来选,我只是想初步了解Access,选择这个就行 3.选择数据库存放位置,并命名,我起名为Test 3.点击工具栏的创建,点击查询设 ...

最新文章

  1. (SpringMVC)Controller返回JSON数据
  2. IDEA Terminal命令行运行javac时,一个类运用另一个类的方法找不到符号的问题
  3. 【theano-windows】学习笔记十一——theano中与神经网络相关函数
  4. 什么是中台架构?真的“烧钱”吗?
  5. 80-300-050-原理-MySQL执行解析
  6. python数据结构-图
  7. CGAL1_1 Three Points and One Segment
  8. python毕业设计作品基于django框架校园排课选课系统毕设成品(6)开题答辩PPT
  9. 20170223找女朋友之路思考总结
  10. inputBox 与 Application.inputBox 的用法与区别。
  11. html中怎么让text不换行,css如何让文本不换行?
  12. try 和 catch 用法
  13. 每日加瓦,终成栋房5-正则表达式
  14. 前后端分离-电商项目
  15. python turtle怎么画海绵宝宝_画师绘制海绵宝宝性转拟人,派大星变小帅哥,又脑补一出甜蜜大戏...
  16. 从奥运门票系统瘫痪到家乐福踩踏事件看软件设计中业务模型的处理
  17. 三菱PLC(FX2N系列)基本指令
  18. java treeview使用详解_Javafx Treeview项目操作事件
  19. 最实用idae快捷键
  20. Neo4j Community Edition社区版本下载、安装、使用

热门文章

  1. pycharm运行程序时看不到任何结果显示
  2. duilib环境配置以及简单入门介绍
  3. OpenCV的基本模块介绍
  4. 链表操作时头结点的好处
  5. dlib+vs2013+opencv实现人脸特征点检测
  6. postgresql 安装使用
  7. Java并发编程实战~ThreadLocal
  8. 爱奇艺首页底部导航按钮android,仿爱奇艺/腾讯视频ViewPager导航条实现
  9. 计算机科学与技术指导情况记录表,计算机科学与技术系 教学情况检查表(期初)...
  10. 改进初学者的PID-介绍