最近写了一个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. mysql 数据操作 单表查询 group by 聚合函数

    强调: 如果我们用unique的字段作为分组的依据,则每一条记录自成一组,这种分组没有意义 多条记录之间的某个字段值相同,该字段通常用来作为分组的依据 如果按照每个字段都是唯一的进行分组,意味着按照这 ...

  2. POJ3070:Fibonacci(矩阵快速幂模板题)

    http://poj.org/problem?id=3070 #include <iostream> #include <string.h> #include <stdl ...

  3. (2)R中的数据类型和数据结构

    R中的数据结构主要面向<线性代数>中的一些概念,如向量.矩阵等.值得注意的是,R中其实没有简单数据(数值型.逻辑型.字符型等),对于简单类型会自动看做长度为1的向量.比如: > b= ...

  4. mysql查询表和字段的注释

    1,新建表以及添加表和字段的注释.   create table t_user(        ID INT(19) primary key auto_increment  comment '主键', ...

  5. 2.1 The Object Model -- Classes and Instances(类和实例)

    一.Defining Classes(定义类) 1. 定义一个新的Ember类,调用Ember.Object上的extend()方法: example:定义了一个含有say()方法的新的Person类 ...

  6. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) Solution

    A: Solved. 分别处理出每个%7后余数的数字个数,再组合一下 #include <bits/stdc++.h> using namespace std; #define ll lo ...

  7. echarts 不同区域背景色不同 废了我一天的时间

    var result = echarts.init(document.getElementById('result')); var option1 = { title: { text: '设备阶段故障 ...

  8. 20145312 《网络对抗》PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验

    20145312 <网络对抗>PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验 注入shellcode 实验步骤 1. 准备一段Shellcode 2. ...

  9. 20145326蔡馨熠 实验三 "敏捷开发与XP实践"

    20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 一.实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 1.git上传代码 首先我通 ...

  10. 论cudnn与cuda之间的关系,和实际例子测试。

    1.其中cudnn是一个常见的神经网络层加速库文件,其能够很大程度的把加载到显卡上的网络层数据进行优化计算.cuda就像一个傻大粗的加速库,其主要是依靠的是显卡 计算速度跟一些算法的优化,而且其也是进 ...