开发Hudson / Jenkins 插件

leonranri 2013-10-31

         接上篇,有了JFR Report,我们可以通过JMRC分析,但是这样的话还是不够方便,所以想自己开发一个Jenkins插件来解析展示,本文先做个开发前的准备工作:

开发Hudson / Jenkins 插件首先一下准备工作:

1. JDK1.6 或更新版本

2. MAVEN 2 

3. maven 库settings设置增加:

<pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
    <pluginGroup>org.jvnet.hudson.tools</pluginGroup>
    <pluginGroup>org.eclipse.hudson.tools</pluginGroup>
</pluginGroups>

 其中,org.eclipse.hudson.tools是针对hudson插件,org.jvnet.hudson.tools针对jenkin插件,两者貌似一样,最终编译出来的都是hpi插件,其实还是有细微的差别,如果是hudson插件,安装到jenkins上后会出现各种奇怪的问题。

4. 创建plugin项目: mvn org.eclipse.hudson.tools:maven-hpi-plugin:3.0.1:create

期间会让你输入groupid和artifactId,完成之后会生成pom,示例如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.eclipse.hudson.plugins</groupId>
        <artifactId>hudson-plugin-parent</artifactId>
        <!-- which version of Hudson is this plugin built against? -->
        <version>3.0.0</version>
    </parent>

    <groupId>song.test</groupId>
    <artifactId>hudson-plugin-test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>hpi</packaging>

    <name>My Hudson Plugin Test</name>

</project>

这里又要注意一点,如果你使用的是jenkins,最终可能想要编译出jenkins插件,需要修改pom如下:

<parent>
	    <groupId>org.jenkins-ci.plugins</groupId>
	    <artifactId>plugin</artifactId>
	    <version>1.509</version>
</parent>

<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>

5. 现在可以创建eclipse配置了: mvn -DdownloadSources=true eclipse:eclipse

可以开始写代码了,具体放到下一篇吧。

相关推荐