为什么要开发jenkins插件:
Jenkins是持续集成运行、管理平台(与hudson一样,具体说明可以查看jenkins的wiki)。jenkins本身提供了一套插件的管理机制,这些插件允许可插拨形式存在。jenkins插件虽然能提供很多种插件,但还是不能满足我们持续集成的需要,所以需要定制一些插件来支撑整个持续集成平台的运行。
Jenkins运行周期:
Jenkins有自己运行的生命周期,如下:
- checkout - check out出源码
-
Pre-build - 预编译
<developers> <developer> <id>xxx</id> <name>Developer gaofeng.qiangf</name> <email>gaofeng.qiangf@xxxx.com</email> </developer> </developers> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0.1</version> <configuration> <!-- your example configuration here --> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <debug>true</debug> </configuration> </plugin> </plugins> </build>
- Build wrapper-准备构建的环境,设置环境变量等
- Builder runs - 执行构建,比如调用calling Ant, Make 等等
- Recording - 记录输出,如测试结果
- Notification - 通知成员
Jenkins提供的扩展点:
为了支撑插件能在各个生命周期中运行,jenkins提供了各种扩展点,我们主类必须要extends一个扩展点;针对现状,基本上只需要使用Notifier,与builder这两个扩展点;详细如下:
- Builder:这个扩展点支撑的是构建这个阶段需要做的事情,包括prebuild postbuid、构建环境等步骤,例如我们更换slave机器的hosts插件
- Notifier:包括通知、消息通知等情况,我们的sendnapolimessage是基于这种扩展点来开发的具体扩展点说明请参考:https://wiki.jenkins-ci.org/display/JENKINS/Extension+points
插件开发步骤
设置settings.xml(包括代理)
因为插件使用的是maven的管理形式,所以需要settings文件,了解maven的同学应该知道settings文件的作用,这里不多说。需要在我们的settings.xml中添加如下设置:
<settings> <pluginGroups> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </pluginGroups> <profiles> <!-- Give access to Jenkins plugins --> <profile> <id>jenkins</id> <activation> <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default --> </activation> <repositories> <repository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </pluginRepository> </pluginRepositories> </profile> </profiles> <mirrors> <mirror> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> <mirrorOf>m.g.o-public</mirrorOf> </mirror> </mirrors> </settings>
由于下载比较慢,所以我添加了一个proxy,具体设置如下:
<!--使用代理--> <proxy> <!-- 唯一标识 --> <id>my-proxy</id> <!-- 指这个代理是否被激活,比如上面提到有多个代理,则会寻找第一个被激活的代理 --> <active>true</active> <!-- 指使用http协议访问 --> <protocol>http</protocol> <!-- 服务器的IP地址 --> <host>218.14.227.197</host> <!-- 访问的端口号 --> <port>3128</port> <!-- 如果服务器需要验证,那么这里就需要配置用户名和密码 --> <username>***</username> <password>***</password> <!-- 这里制定那些域名不需要被代理 --> <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts> </proxy>
设置maven3
Jenkins为什么要使用maven3,在使用maven2编译的时候都不会出现问题,但使用mvn-hpi插件的时候,会报空指针异常错误,查看了wiki,这个bug未解决,但切换到maven3该问题消失,应该是maven2对这个插件支持不够完善。
创建maven项目(pom文件介绍)
1、使用mvn –cpu create:hpi命令。会自己生成一个hellobuilder示例maven工程。,中间让你输入groupid与aid。
2、在maven中添加我们需要的依赖以及jdk、开发者维护说明。和maven的方式一样。
<developers> <developer> <id>xxxx</id> <name>Developer gaofeng.qiangf</name> <email>gaofeng.qiangf@xxxx-inc.com</email> </developer> </developers> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0.1</version> <configuration> <!-- your example configuration here --> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <debug>true</debug> </configuration> </plugin> </plugins> </build>
导入eclipse
使用命令 mvn eclipse:eclipse,然后再eclipse中使用import功能导入,这个不做详细介绍,相信大家都会使用
项目目录介绍(重要):
相关推荐
Jenkins插件开发涉及多个步骤,首先需要搭建一个有效的开发环境。这个环境包括Java Development Kit (JDK)和Maven的安装。JDK是Java编程的基础,它的版本至少需要6.0或更高。你可以通过在命令行输入`java -version`...
第一次做Jenkins插件开发,遂将笔记公开分享插件名称:gettingCase插件功能:获取RallyDev上的某一个TestCase信息请查阅本文最后的参考资料mvn-Uorg.jenkins-ci.tools:maven-hpi-plugin:create第一次执行会比较慢,因为...
**Jenkins插件开发基础教程** Jenkins,作为一款开源的持续集成(Continuous Integration, CI)和持续交付(Continuous Deployment, CD)工具,是许多软件团队首选的自动化平台。它支持各种语言和构建工具,而插件...
Jenkins提供了丰富的管理和配置功能,如下图所示,包括系统设置,插件管理,系统信息,系统日志,负载统计,节点管理等功能。Stapler是一个将应用程序对象和URL装订在一起的lib库,使编写web应用程序更加方便。...
本资料包提供了"jenkins.war"和"jenkins-plugins"等HPI(Jenkins插件包)文件,旨在帮助用户在Linux系统上离线安装Jenkins及其所需插件。 1. Jenkins离线安装: 要在离线环境中安装Jenkins,首先需要下载最新版本...
4. **Jenkins插件开发**: - **开发工具**:开发者可以使用Java和Maven来开发HPI插件,利用Maven的hpi插件进行打包。 - **插件结构**:一个插件通常包括了源代码、资源文件、配置XML以及插件描述符文件`META-INF/...
3. **压缩包内容**:"jenkins插件"、"145jenkins插件"、"jenkins_plugin"、"jenkins" 这些子文件可能包含不同版本或类型的 Jenkins 插件,每个文件可能是一个单独的 `.hpi` 文件或者是包含多个插件的目录。...
本压缩包 "jenkins插件.zip" 提供了一些常用的 Jenkins 插件,用户下载后可直接应用于自己的 Jenkins 环境,无需再进行单独的插件安装。 一、Jenkins 插件的作用 1. 自动化构建:通过插件如 Maven Integration ...
Jenkins插件系统 Jenkins的插件架构使得其功能无比丰富。每个插件都是一个独立的Java Web应用程序,它们通过Jenkins的插件管理系统进行安装和更新。`/Users/mac/.jenkins/plugins`是mac用户的Jenkins主目录下存放...
此外,理解Maven或Gradle构建系统以及Jenkins插件开发框架(如Jenkins Pipeline插件API)也是必要的。 2. **钉钉插件接口分析**: 钉钉插件提供了一套API,允许开发者自定义通知消息。首先,你需要获取到钉钉...
Jenkins 是一款开源的持续集成(Continuous Integration, CI)工具,广泛用于自动化各种软件开发任务,包括构建、测试和部署。在离线环境下使用 Jenkins,往往需要预先下载好所需的插件,以确保在没有网络连接时也能...
本压缩包“Jenkins常用插件.rar”包含了多个Jenkins插件,这些插件能够扩展Jenkins的功能,满足不同项目的需求。 1. **analysis-model-api.hpi** - 这是代码分析模型API插件,它为其他分析插件提供了一种通用的接口...
开发者可以使用 Jenkins 插件开发框架(Jenkins Plugin SDK)来简化开发过程。 6. **插件配置** 每个插件都有其独特的配置选项,可以在项目的配置页面或全局系统配置中找到。正确配置插件是充分发挥其功能的关键。...
Jenkins是一款广泛使用的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)工具,它支持多种软件开发流程,如自动化构建、测试和部署。在这个“jenkins相关插件包.zip”压缩文件中,...
在这个“jenkins离线插件+插件安装依赖顺序文档”中,我们将深入探讨如何在没有网络连接的情况下安装Jenkins插件,以及插件安装的正确顺序。 首先,让我们理解什么是Jenkins插件。Jenkins的核心功能是有限的,但其...
**Jenkins插件:Post-Build Script Plug-in详解** Jenkins作为一款强大的持续集成工具,其丰富的插件系统是其核心优势之一。Post-Build Script Plug-in是其中的一个重要插件,它允许用户在构建过程完成后执行自定义...
1. **Jenkins插件开发环境设置**:包括安装必要的开发工具,如Java Development Kit (JDK),Maven,以及配置Jenkins的源代码管理工具。 2. **理解插件结构**:"Hello World"插件作为基础,会展示一个插件的基本组成...