Top 10 Jenkins Plugins and Features
Jenkins plugins are a must-have for any developer working with Jenkins. From setting up pipelines to integrating with Jira, Jenkins has a ton of features and plugins that can help you to put out higher-quality software faster. Without further ado, here are some of the best Jenkins plugins and features.
Top 10 Jenkins Plugins and Features
Here is a list of the top 10 must-have Jenkins plugins and features:
- Easy Installation Feature
- Docker Plugin for Jenkins
- Jira Plugin
- Slack Notification Plugin
- Maven Plugin
- Amazon EC2 Plugin
- JUnit Plugin
- Pipeline Plugin
- Mailer Plugin
- Green Balls Plugin
1. Easy Installation
The easiest way to download Jenkins is to download the WAR file. You can drop the downloaded Jenkins WAR file (there are also a wide variety of Linux packages available and a Windows installer) into your favorite JEE container (Tomcat, Jetty, Glassfish etc.) or you can start the WAR file directly with
java -jar jenkins.war.
Now that it is up and running, you can start configuring jobs and installing plugins. It will use a folder in your
$HOME to persist the configuration and store the actual jobs. No database, no special installation, no special registration. Nice and easy.
2. Docker Plugin for Jenkins
Running a build on the same machine Jenkins is on can be problematic. Usually, Jenkins has many builds that run or can run at the same time. This impacts the machine’s performance—it's hard to manage and could potentially shut down the machine if an error occurred. Jenkins solves this problem using agents to execute the build. The agent can be a remote machine, virtual machine, or container. If you want to spawn Docker containers and run builds on them automatically, you will definitely benefit from this Docker plugin.
3. Jira Jenkins Plugin
This plugin integrates Jenkins with Jira to give you more visibility into the development pipeline. With the plugin, you can automatically send data about builds and deployments from Jenkins to Jira or you can track issues from Jira in Jenkins.
4. Slack Integration
The great thing about Slack is that is not only a chat client, but it is a platform that allows you even to integrate with other tools. And yes, you can integrate Jenkins into Slack. Once you install the plugin, Jenkins can send notifications about the build status into a specified channel.
5. Maven Integration
Although Jenkins has native Maven support, it still lacks more advanced integration. This plugin is released separately and provides advanced integration for Maven 2/3 projects. Here is the list of some of the advanced features from the official plugin description:
- Automatic configuration of reporting plugins (e.g. JUnit, Findbugs)
- Automatic triggering across jobs based on SNAPSHOTs published/consumed
- Incremental build - only build changed modules
- Build modules in parallel on multiple executors/nodes
- Post build deployment of binaries only if the project succeeded and all tests passed
Related reading: What Is Maven?
6. Jenkins Pipeline
Jenkins Pipeline is an incredibly useful addition that came to life with the Jenkins 2.0 release. It allows you to script your build pipeline consisting of one or more build jobs into a single workflow. It makes the visualization of the pipeline much easier, the monitoring of which parts have been run and which jobs are still in the queue a non-issue.
The best part is that it's integrated with the SCM, so you can develop your pipeline definition script using proper tools and see the historical changes, audit, do the code reviews, etc. The build pipeline can become the essential part of your mental model about the CI.
7. Amazon EC2
One of the lesser-known Jenkins features is its ability to scale out to a large number of nodes and distribute the workload between them. If your own infrastructure is not large enough, then this plugin lets you tap into the resources of the Amazon EC2 infrastructure. You can specify the AMIs to use, label them, provide connection credentials and test the connectivity.
We use EC2 to run our JEE container tests. This means that to test WebSphere 7.0.1 we launch the specific AMI and start up WebSphere with our agent (XRebel or JRebel) and go through the test suite. This is orchestrated by Jenkins using this plugin and then copying back the results.
8. JUnit Plugin
The most common types of build in Jenkins are the ones that test the application. By default, Jenkins can run JUnit tests and it provides you with the test results. If you want to get more insight into the test trends, you will need this plugin. With this plugin, you can easily see the results in graphical visualization, track failures, and so on.
Related reading:Exploring JUnit 5
9. Mailer Plugin
It is almost as simple as its name. The Mailer plugin allows you to configure email notifications for build results. It supports secure protocols such as SSL or TSL and has various options for configuration when to send an email.
10. Green Balls Plugin
Historically Jenkins has used the blue color to denote successful builds. So, all status messages throughout the GUI use blue as the color of success. If you prefer, you can change the color to green with the Green Balls plugin.
Jenkins is one of the most popular tools for continuous integration and continuous deployment. Knowing the best Jenkins plugins and features can help you streamline your development process.
Looking for another CI/CD technology? Find out which tools developers are using the most in the 2021 Java Developer Productivity Report.
Note: This post was originally published on August 24, 2014 and has been updated for accuracy and comprehensiveness.