Jenkins (Software)
# Jenkins (Software)

Jenkins ist ein erweiterbares, webbasiertes Software-System zur kontinuierlichen Integration von Software-Komponenten zu einem Anwendungsprogramm. Es wird als Fork der Software Hudson von Sun, heute Oracle, betrachtet.

## Geschichte

Jenkins wurde in erster Linie von Kohsuke Kawaguchi, einem Mitarbeiter von Sun Microsystems, unter dem Namen Hudson entwickelt. Kawaguchi verließ das Unternehmen, nachdem es von Oracle Ende Januar 2010 übernommen worden war. Kawaguchi behielt die Leitung bei Hudson und arbeitete nach eigenen Angaben auf freiberuflicher Basis weiter bei Oracle. Da Oracle die Namensrechte an Hudson hält, wurde das Projekt schließlich in Jenkins umbenannt. Der Name Jenkins wurde gewählt, da die Entwickler der Meinung waren, dass Jenkins im Englischen genauso wie Hudson mit dem Beruf des Butlers assoziiert wird. Da Oracle Hudson ebenfalls weiterentwickelte, kann von einem Fork („Abspaltung“) der Softwareentwicklung gesprochen werden.

Hudson gewann 2008 einen Duke’s Choice Award in der Kategorie „Developer Solutions“. Im Januar 2014 wurde Kawaguchi der Chief Technology Officer von CloudBees. CloudBees verließ im August 2010 den sogenannten „Stealth-Mode“ als Startup und Kohsuke Kawaguchi gibt an, dort seit November 2010 dauerhaft beschäftigt zu sein. Damit haben sowohl Hudson als auch Jenkins ein unterstützendes Unternehmen, das Support und Fortentwicklung anbietet, und werden beide als Open-Source-Projekte in der Verwaltung gemeinnütziger Organisationen geführt: Hudson bei der Eclipse Foundation und Jenkins bei der Software in the Public Interest.

2016 wurde die Weiterentwicklung von Hudson zugunsten von Jenkins eingestellt.

## Programmeigenschaften

Das Programm ist in der Programmiersprache Java geschrieben und läuft in beliebigen EJB-Containern. Es wird zusammen mit der minimalen Servlet-Middleware Winstone ausgeliefert, sodass Jenkins sofort auf Application-Servern nach der Jakarta-EE-Spezifikation lauffähig ist und es zusätzlich keines Servlet-Containers, wie z. B. Tomcat, bedarf. Unterstützt werden verschiedene Build-Tools wie Apache Ant, Maven oder Gradle, Versionsverwaltungssysteme wie CVS, Subversion oder Git, automatische Testverfahren ("test tools") wie JUnit oder Emma. Durch verschiedene Zusatzmodule ("Plugins") können auch andere Compiler gesteuert werden, sodass neben Java- auch PHP-, Ruby- oder .Net-Framework-basierte Projekte verwaltet werden können. Neben CruiseControl ist Jenkins eines der am häufigsten eingesetzten Werkzeuge zur kontinuierlichen Integration.

Jenkins verfügt über eine REST-basierte Programmierschnittstelle zur Steuerung durch andere Programme. So ist z. B. die Steuerung von „Xtreme-Feedback-Geräten“ möglich, die die Koordination in XP-Arbeitsgruppen vereinfacht.

## Lizenz

Die Software steht unter der MIT-Lizenz. Die verwendeten Icon-Grafiken stammen aus dem Tango Desktop Project und stehen unter der Lizenz Creative Commons Attribution Share-Alike.

## Auszeichnungen

* DevOps Dozen 2017
* DevOps Dozen 2016
* Bossie Awards 2014
* Geek Choice Award 2014
