Jenkins Tool Configuration
Jenkins does not compile code or fetch repositories by itself. It calls tools such as Java, Git, Maven, and Gradle. Tool configuration tells Jenkins where those tools live and which versions to use. A correct setup prevents the classic complaint, "it works on my laptop but fails in Jenkins."
The Layman's View
Think of Jenkins as a head chef in a kitchen. The chef needs knives, pans, and an oven. Tool configuration is the shelf label that says where each utensil sits. Without labels, the chef searches blindly and wastes time.
Where to Find the Settings
Open the dashboard and select Manage Jenkins, then Tools. The page lists a section for every tool type that your installed plugins support.
Manage Jenkins
|
v
Tools
|
+--> JDK installations
+--> Git installations
+--> Maven installations
+--> Gradle installations
+--> Ant installations
Adding a JDK
Many Jenkins jobs need a Java Development Kit. Click Add JDK and give it a short, clear name such as JDK17. Choose one of two ways to supply the files:
- Enter the folder path of a JDK already installed on the server, for example /usr/lib/jvm/java-17-openjdk.
- Tick Install automatically and let Jenkins download a chosen version.
Automatic installation keeps every agent on the same version without manual work on each machine.
Adding Git
Jenkins needs the Git program to clone repositories. Most servers already have Git on the system path, so the default entry named Default with the path git works. Set a full path such as /usr/bin/git when the server has several Git versions.
Adding Maven and Gradle
Click Add Maven, enter a name such as Maven3, and tick Install automatically. Pick a version from the list. Gradle follows the same pattern. Projects that ship a Gradle wrapper file named gradlew can skip the Gradle entry, since the wrapper downloads its own version.
How Jobs Use Configured Tools
In a Freestyle Job
Open the job configuration. Build steps such as Invoke top-level Maven targets show a drop-down with the names you saved. Select Maven3 and the job uses that version.
In a Declarative Pipeline
Use the tools block and refer to the saved names exactly.
pipeline {
agent any
tools {
jdk 'JDK17'
maven 'Maven3'
}
stages {
stage('Check') {
steps {
sh 'java -version'
sh 'mvn -version'
}
}
}
}Jenkins adds the chosen tool folders to the PATH before each step runs. The two commands in the Check stage print the exact versions that the build uses.
How Tool Resolution Works
Job asks for 'Maven3'
|
v
Does the agent have Maven3 installed?
| |
Yes No
| |
v v
Use it Download it automatically
(if auto-install is on)
|
v
Add its folder to PATH and run the step
Tips for a Clean Setup
Name Tools With Versions
Names like JDK11 and JDK17 tell readers which version a job needs. Vague names like MyJava cause confusion when the team upgrades.
Keep Controller and Agents in Sync
Agents run most builds. Check that each agent can reach the tool or can download it. A tool path that exists on the controller may not exist on an agent.
Avoid Hard-Coded Paths in Scripts
A script that calls /opt/maven/bin/mvn breaks when the server changes. Rely on the PATH that Jenkins prepares.
Common Problems and Fixes
| Symptom | Likely Cause | Fix |
|---|---|---|
| mvn: command not found | Tool missing from the job or pipeline | Add the tools block or select Maven in the build step |
| Wrong Java version in logs | Job uses system Java | Select the configured JDK |
| Tool name not found | Typing error in the name | Match the name in Tools exactly, including capitals |
| Download fails on agent | No internet access | Install the tool on the agent by hand |
Quick Practice
- Open Manage Jenkins and select Tools.
- Add a JDK named JDK17 with automatic installation.
- Add a Maven entry named Maven3 with automatic installation.
- Create a pipeline job with the sample script above.
- Run the job and read the console output for the version lines.
When the console shows the expected versions, your tool setup works and every future job can rely on it.
