If I create a Maven job in Jenkins (New Item => Maven project, using the maven plugin) with all defaults and run it, I get this error:
Started by user anonymous Building on master in workspace /var/lib/jenkins/jobs/job_name/workspace ERROR: A Maven installation needs to be available for this project to be built.Either your server has no Maven installations defined, or the requested Maven version does not exist. Finished: FAILURE
Maven runs perfectly from command line with just mvn
.
There is a system-wide Jenkins configuration for Maven installation: Manage Jenkins => Configure System => Maven / Maven installations. And if I add Maven installation using this web UI (by providing pre-installed path in MAVEN_HOME
as /usr/share/maven
), the job runs SUCCESSFULLY.
The global Jenkins config does not make sense: Maven is run per Slave, not per Jenkins.
The zoo of Slaves where Jenkins runs jobs may contain Slaves with various platforms, OSes, environments where different versions of Maven are installed in different locations.
Setting environment variables like MAVEN_HOME
and M2_HOME
to the same path for entire system on Slave node didn't work.
Both Jenkins Master and Slave are Linux hosts. Jenkins version: 1.598
In the Jenkins dashboard (Home screen), click Manage Jenkins from the left-hand side menu. Then, click on 'Configure System' from the right hand side. In the Configure system screen, scroll down till you see the Maven section and then click on the 'Add Maven' button. Uncheck the 'Install automatically' option.
Assuming you have Java and Maven installed on your slave:
It should now work (even if you have configured a Maven installation on the master).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With