最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上。jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介绍介绍经验。

首先是环境搭建,这里列一下jenkins插件开发所需工具:

  • JDK6.0或更高
  • 构建工具—Maven
  • IDE—IDEA或eclipse
  • web服务器:jetty或tomcat(可选)

Maven

jenkins插件需要用到Maven这个构建工具,大家可以去Maven的官网下载:这里

如何安装Maven?以windows环境为例:

  1. 解压下载的zip包(比如:apache-maven-3.0.4-bin.zip)到一个指定的目录(比如:D:\apache-maven-3.0.4);
  2. 添加M2_HOME环境变量,指就是我们刚刚解压的目录(如何设置环境变量JAVA开发应该都懂得);
  3. 添加M2这个环境变量,值是%M2_HOME%/bin,并在PATH这个环境变量的值后面追加 %M2%;
  4. 环境变量中确保有JAVA_HOME这个环境变量,有的话在cmd窗口可以直接用java -version打印JDK版本信息;
  5. 配置完所有环境变量后,在cmd窗口打印命名mvn -v,会打印出Maven和JDK的信息,这样就表示安装Maven成功了;

更详细的安装说明请看这里

IDE

我以前的blog还介绍过IDEA,相对于eclipse我还是比较喜欢用IDEA来开发。因为IDEA已经集成了Maven的插件,所以可以直接通过项目中的pom文件打开整个项目。在IDEA主界面右边有个maven projects的区域,打开可以看到工程的各个maven命令(图1)。

使用IDEA还需要添加一个针对jelly页面的插件,这个插件可以对jelly文件进行语法提示和高亮显示,插件地址点击这里,效果见图2。

图1:

图2:

Jetty(可选)

其实运行插件工程的hpi:run就可以通过maven启动一个自带的Jetty6服务器,不需要额外再安装jetty服务器。但为了让我们的插件测试更接近真实环境,我们可以将做好的插件放到另外一个的Jetty服务器中,来测试插件的运行效果。

  1. 去Jetty官网下载最新的Jetty包;
  2. 将包解压到本地目录;
  3. 将jenkins的war包放到解压目录中的webapps子文件夹中;
  4. 在解压目录的contexts子目录中增加一个xml文件,文件名是jenkins.xml(内容如下);
  5. 打开CMD进入解压目录,执行java -jar start.jar命令,即可启动Jetty服务器;
  6. 打开浏览器,进入localhost:8080/jenkins进入jenkins主页;
jenkins.xml
1
2
3
4
5
6
7
8
9
10
11
12
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/jenkins</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Jenkins Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
</New>
</Set>
</Get>
</Configure>

注意:如果用hpi:run启动的服务,jenkins地址是:localhost:8080,而使用真实Jetty启动的服务,地址是:localhost:8080/jenkins。

到这里你的jenkins插件开发环境已经搭建好了,我们在下一篇blog再继续介绍具体的插件开发,谢谢!

Jenkins插件开发(一)--环境搭建的更多相关文章

  1. 持续集成-jenkins介绍与环境搭建

    什么是持续集成? 转自:https://blog.csdn.net/tanshizhen119/article/details/80328523 持续集成,俗称CI, 大师Martin Fowler对 ...

  2. jenkins在linux环境搭建-公司系统

    1.按照这个搭建的项目https://www.cnblogs.com/zishengY/p/7170656.html 2.配置权限https://blog.csdn.net/mynameissls/a ...

  3. jmeter + ant + jenkins 自动化集成环境搭建

    所需工具 一.jmeter 工具下载 https://jmeter.apache.org/  配置环境JDK等及各种插件 二.Ant安装(http://ant.apache.org/) 安装Ant是为 ...

  4. jenkins安装及环境搭建

    Jenkins 是基于Java开发的一种持续集成工具,所以,Jenkins需要Java环境. Jenkins版本是: JAVA版本是: Tomcat版本是: 或者 Jenkins版本是:2.10.2 ...

  5. Jenkins - 持续集成环境搭建

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

  6. Jenkins - 持续集成环境搭建【转】

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

  7. 四、jenkins+postman+newman环境搭建

    前提: 搭建环境之前需要先理清楚各个环境的依赖关系,jenkins只支持windows命令行跟linux shell环境执行构建命令,而postman的测试脚本不能直接在命令行或shell环境执行,p ...

  8. Jenkins+SVN持续环境搭建

    需要三台不同环境的服务器,SVN.Jenkins.Tomcat 1.SVN搭建 1.Subversion服务器(SVN服务器) 2.项目对应的版本库 3.版本库中钩子程序(用于触发构建命令) 在我以前 ...

  9. Jenkins+GitHub 项目环境搭建和发布脚本(二)

    Jenkins+gitHub项目搭建配置 项目发布脚本 profilesScript.sh (支持不同环境配置文件) #!/bin/bash ACTIVE=$ JENKINS_PATH=/var/li ...

  10. 谁能告诉我如何通过Jenkins完成分布式环境搭建并执行自动化脚本

    ​今天我们接着昨天的内容,看一看如何完成Jenkins分布式环境的搭建和使用,因为我之前也是自己一个人摸索的,如果有不对的地方,请各位看官私信指出. 新增分布式部署节点 在系统管理/节点管理中点击新建 ...

随机推荐

  1. modelform动态显示select标签的对象范围

    既根据当前登录人,动态显示对象相关的的select的选项,例如 A登录,只显示A的客户,B登录,只显示B自己的客户 先了解form的ModelChoiceField字段(这个表格没意义,就是引出参数q ...

  2. Idea的注入和自动编译配置

    实时编译: 第二个(防止编译时Autowired报错): 修改成:

  3. 【selenium】selenium ide的安装过程

    简介一:SeleniumIDE安装 1.安装seleniumIDE,打开火狐浏览器,地址栏输入地址—>点击Add按钮—>安装结束后重启FireFox—>在菜单栏中可以看到Seleni ...

  4. 201-React顶级API

    一.概述 React是React库的入口点.如果您从<script>标记加载React,则这些顶级API可在React全局中使用.如果你使用npm的ES6,你可以写:import Reac ...

  5. Java压缩多个文件并导出

    controller层: /** * 打包压缩下载文件 */ @RequestMapping(value = "/downLoadZipFile") public void dow ...

  6. spring Security 得到认证用户名的方法

    @Service("userService")public class UserServiceImpl implements UserService { @Overridepubl ...

  7. 【Cocos2dx3.x Lua】图片异步加载

    一.说明     异步加载就是把消耗程序时间比较大的加载操作放到其他线程中,待加载完毕后通过回调函数的方式通知主线程.   addImageAsync函数实现(Cocos2dx 3.3) Link:  ...

  8. 谷歌百度以图搜图 "感知哈希算法" C#简单实现

    /// <summary> /// 感知哈希算法 /// </summary> public class ImageComparer { /// <summary> ...

  9. 内置函数——format

    说明: 1. 函数功能将一个数值进行格式化显示. 2. 如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化. >>> format(3.1 ...

  10. python使用set来去重碰到TypeError: unhashable type

    新版:Python 的 unhashable type 错误分析及解决 python使用set来去重是一种常用的方法. 一般使用方法如下: # int a = [1, 2, 3, 4, 5, 1, 2 ...