`
qian716719
  • 浏览: 1145 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

jenkins插件开发

阅读更多

为什么要开发jenkins插件:

 

   Jenkins是持续集成运行、管理平台(与hudson一样,具体说明可以查看jenkinswiki)。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工程。,中间让你输入groupidaid

 

 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插件开发手册

    Jenkins插件开发涉及多个步骤,首先需要搭建一个有效的开发环境。这个环境包括Java Development Kit (JDK)和Maven的安装。JDK是Java编程的基础,它的版本至少需要6.0或更高。你可以通过在命令行输入`java -version`...

    jenkins插件开发笔记

    第一次做Jenkins插件开发,遂将笔记公开分享插件名称:gettingCase插件功能:获取RallyDev上的某一个TestCase信息请查阅本文最后的参考资料mvn-Uorg.jenkins-ci.tools:maven-hpi-plugin:create第一次执行会比较慢,因为...

    jenkins-tutorial:Jenkins插件开发基础教程

    **Jenkins插件开发基础教程** Jenkins,作为一款开源的持续集成(Continuous Integration, CI)和持续交付(Continuous Deployment, CD)工具,是许多软件团队首选的自动化平台。它支持各种语言和构建工具,而插件...

    浅析Jenkins插件开发

    Jenkins提供了丰富的管理和配置功能,如下图所示,包括系统设置,插件管理,系统信息,系统日志,负载统计,节点管理等功能。Stapler是一个将应用程序对象和URL装订在一起的lib库,使编写web应用程序更加方便。...

    jenkins离线插件安装包大全

    本资料包提供了"jenkins.war"和"jenkins-plugins"等HPI(Jenkins插件包)文件,旨在帮助用户在Linux系统上离线安装Jenkins及其所需插件。 1. Jenkins离线安装: 要在离线环境中安装Jenkins,首先需要下载最新版本...

    jenkins所需hpi插件

    4. **Jenkins插件开发**: - **开发工具**:开发者可以使用Java和Maven来开发HPI插件,利用Maven的hpi插件进行打包。 - **插件结构**:一个插件通常包括了源代码、资源文件、配置XML以及插件描述符文件`META-INF/...

    jenkins插件-合集.zip

    3. **压缩包内容**:"jenkins插件"、"145jenkins插件"、"jenkins_plugin"、"jenkins" 这些子文件可能包含不同版本或类型的 Jenkins 插件,每个文件可能是一个单独的 `.hpi` 文件或者是包含多个插件的目录。...

    jenkins插件.zip

    本压缩包 "jenkins插件.zip" 提供了一些常用的 Jenkins 插件,用户下载后可直接应用于自己的 Jenkins 环境,无需再进行单独的插件安装。 一、Jenkins 插件的作用 1. 自动化构建:通过插件如 Maven Integration ...

    Jenkins打包插件配置

    Jenkins插件系统 Jenkins的插件架构使得其功能无比丰富。每个插件都是一个独立的Java Web应用程序,它们通过Jenkins的插件管理系统进行安装和更新。`/Users/mac/.jenkins/plugins`是mac用户的Jenkins主目录下存放...

    Jenkins项目实战之-钉钉提醒插件二次开发举例2-添加消息内容.rar

    此外,理解Maven或Gradle构建系统以及Jenkins插件开发框架(如Jenkins Pipeline插件API)也是必要的。 2. **钉钉插件接口分析**: 钉钉插件提供了一套API,允许开发者自定义通知消息。首先,你需要获取到钉钉...

    jenkins离线所需插件

    Jenkins 是一款开源的持续集成(Continuous Integration, CI)工具,广泛用于自动化各种软件开发任务,包括构建、测试和部署。在离线环境下使用 Jenkins,往往需要预先下载好所需的插件,以确保在没有网络连接时也能...

    Jenkins常用插件.rar

    本压缩包“Jenkins常用插件.rar”包含了多个Jenkins插件,这些插件能够扩展Jenkins的功能,满足不同项目的需求。 1. **analysis-model-api.hpi** - 这是代码分析模型API插件,它为其他分析插件提供了一种通用的接口...

    Jenkins Plugins

    开发者可以使用 Jenkins 插件开发框架(Jenkins Plugin SDK)来简化开发过程。 6. **插件配置** 每个插件都有其独特的配置选项,可以在项目的配置页面或全局系统配置中找到。正确配置插件是充分发挥其功能的关键。...

    jenkins相关插件包.zip

    Jenkins是一款广泛使用的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)工具,它支持多种软件开发流程,如自动化构建、测试和部署。在这个“jenkins相关插件包.zip”压缩文件中,...

    jenkins离线插件+插件安装依赖顺序文档

    在这个“jenkins离线插件+插件安装依赖顺序文档”中,我们将深入探讨如何在没有网络连接的情况下安装Jenkins插件,以及插件安装的正确顺序。 首先,让我们理解什么是Jenkins插件。Jenkins的核心功能是有限的,但其...

    Jenkins插件:Post-Build Script Plug-in

    **Jenkins插件:Post-Build Script Plug-in详解** Jenkins作为一款强大的持续集成工具,其丰富的插件系统是其核心优势之一。Post-Build Script Plug-in是其中的一个重要插件,它允许用户在构建过程完成后执行自定义...

    jenkinsci-hello-world-plugin

    1. **Jenkins插件开发环境设置**:包括安装必要的开发工具,如Java Development Kit (JDK),Maven,以及配置Jenkins的源代码管理工具。 2. **理解插件结构**:"Hello World"插件作为基础,会展示一个插件的基本组成...

Global site tag (gtag.js) - Google Analytics