Jenkins perfpublisher plugin
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/main
.gitignore
README
changelog
pom.xml

README

+--------------------------------------------------+
+	README - HOW TO COMPILE - PLUGIN	   +
+--------------------------------------------------+
@author  : Georges Bossert
	   <gbossert@caps-entreprise.com
@date	 : 17/07/2009
@version : 1.0

This document will introduce how to compile and run
the PerfPublisher Plugin. More globaly, this "how to"
can be used for any Jenkins plugin.

Summary
----------------------------------------------------
1.	Tools needed
	a. JDK 6.0
	b. Maven 
		i. how-to install Maven on linux
2.	Files and Workspace layout
3.	Compile a project
4.	Debug a project
5.	Distributing a Plugin
6.	Links

----------------------------------------------------
1. Tools needed
----------------------------------------------------
	a. JDK 6.0
In order to compile, run and debug any Jenkins Plugin, 
few tools need to be install.
First, JAVA and it's JDK ( min. 6.0 ), since it's
mainly developped in JAVA.
	
	b. Maven
Right after, come with Maven2 which has to be fully
functionnal and able to download stuff over the 
Internet.
------------------------------------------------------------------------------------------------
	i. how-to install Maven on linux
 		1. Open a command terminal.
		2. Create a directory for your Maven install.
			mkdir /udd/[USER]/apache-maven
  		3. Download the maven distribution archive to your install directory.
			wget http://apache.mirror99.com/maven/binaries/apache-maven-2.0.9-bin.tar.gz
  		4. Extract the distribution archive.
			tar -zxf apache-maven-2.0.9-bin.tar.gz
  			The file will be extracted too /udd/[USER]/apache-maven/apache-maven.
		5. Add the M2_HOME environment variable.
			export M2_HOME=/udd/[USER]/apache-maven/apache-maven-2.0.9
  		6. Add the M2 environment variable.
			export M2=$M2_HOME/bin
  		7. Add M2 environment variable to your path.
			export PATH=$M2:$PATH
  		8. Make sure that JAVA_HOME is set to the location of your JDK.
		9. Test your new Maven setup.
			mvn --version
  			If your setup is correct you should now see something like:
				Maven version: 2.0.9
				Java version: 1.6.0_03
				OS name: "linux" version: "2.6.22-14-generic" arch: "i386" Family: "unix"
------------------------------------------------------------------------------------------------
We also have to register Jenkins repositories into
Jenkins. Edit ~/.m2/settings.xml to be sure to have 
this declaration :

<settings>

  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>

  <profiles>

    <profile>
      <id>jenkins</id>

      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </repository>
        <repository>
          <id>m.g.o-public</id>
          <url>http://maven.glassfish.org/content/groups/public/</url>
        </repository>
      </repositories>

      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
        <pluginRepository>
          <id>m.g.o-public</id>
          <url>http://maven.glassfish.org/content/groups/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>

  <activeProfiles>
    <activeProfile>jenkins</activeProfile>
  </activeProfiles>

</settings>

----------------------------------------------------
2. Files and Workspace layout
----------------------------------------------------
PerfPublisher as any Jenkins Plugin is mainly
based on 4 types of data.

> pom.xml :
The controller of it's own Maven build

> src/main/java :
Contains all the Java sources.

> src/main/ressources :
Contains all the Jelly and others ressources files.

> src/main/webapp :
Every files in the directory will be copy directly into
the runtime of the Plugin. Must contain all the static 
components like images and HTML pages.

----------------------------------------------------
3. Compile a project
----------------------------------------------------
In a shell, juste use the maven commands :
> mvn clean :
	clean the sources and the previous build
> mvn compile :
	compile the sources

----------------------------------------------------
4. Debug a project
----------------------------------------------------
Before starting debug, the environnement must be set.
use this linux command to execute the debug on
your host using port 8000

export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"

As compiling, debuging only requires tu execute a 
maven command :

> mvn hpi:run

If you open http://localhost:8080/ in your browser, 
you should see the Jenkins page running in Jetty. 
The MAVEN_OPTS portion launches this whole thing 
with the debugger port 8000, so you should be able 
to start a debug session to this port from your IDE.

----------------------------------------------------
5. Distributing a Plugin
----------------------------------------------------
To create the package containing the needed files,
run the following maven goal :

> mvn package

This command should create an archive *.hpi, which is 
similar to *.jar, in the target directory. It's
this file used to install the plugin .

----------------------------------------------------
6. Links
----------------------------------------------------
Maven2 :
http://maven.apache.org/
Jenkins :
http://jenkins-ci.org/