Impossible d’exécuter le programme “mvn” error = 2, pas un tel fichier ou répertoire

Je fais un build sur mon Ubuntu 14.04 LTS mais j’obtiens ce qui suit:

Started by user anonymous Building in workspace /var/lib/jenkins/workspace/videovixx > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > /usr/bin/git config remote.origin.url https://bitbucket.org/mdennis10/videovixx.git # timeout=10 Fetching upstream changes from https://bitbucket.org/mdennis10/videovixx.git > /usr/bin/git --version # timeout=10 using .gitcredentials to set credentials > /usr/bin/git config --local credential.helper store -- file=/tmp/git6236060328558794078.credentials # timeout=10 > /usr/bin/git fetch --tags --progress https://bitbucket.org/mdennis10/videovixx.git +refs/heads/*:refs/remotes/origin/* > /usr/bin/git config --local --remove-section credential # timeout=10 > /usr/bin/git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > /usr/bin/git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision f5c53e95d33c1e15abd7519346c18ec6bc0c81d7 (refs/remotes/origin/master) > /usr/bin/git config core.sparsecheckout # timeout=10 > /usr/bin/git checkout -f f5c53e95d33c1e15abd7519346c18ec6bc0c81d7 > /usr/bin/git rev-list f5c53e95d33c1e15abd7519346c18ec6bc0c81d7 # timeout=10 [videovixx] $ mvn install package FATAL: command execution failed java.io.IOException: Cannot run program "mvn" (in directory "/var/lib/jenkins/workspace/videovixx"): error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at hudson.Proc$LocalProc.(Proc.java:244) at hudson.Proc$LocalProc.(Proc.java:216) at hudson.Launcher$LocalLauncher.launch(Launcher.java:802) at hudson.Launcher$ProcStarter.start(Launcher.java:380) at hudson.Launcher$ProcStarter.join(Launcher.java:387) at hudson.tasks.Maven.perform(Maven.java:328) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533) at hudson.model.Run.execute(Run.java:1745) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:89) at hudson.model.Executor.run(Executor.java:240) Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:186) at java.lang.ProcessImpl.start(ProcessImpl.java:130) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ... 15 more Build step 'Invoke top-level Maven targets' marked build as failure Archiving artifacts Recording test results Finished: FAILURE 

Je suppose que cela est dû à une fonctionnalité de sécurité Linux qui empêche la création de / var / lib / jenkins / workspace / videovixx sans les permissions correctes que je pourrais ne pas avoir. Est-ce le problème et comment le résoudre?

Il y a plusieurs choses ici.

Vous n’avez pas non plus sélectionné la version Maven dans la configuration du travail. Ou vous n’avez pas configuré Jenkins pour installer une version de Maven. Ou vous vous attendiez à utiliser Maven installé localement sur l’esclave, mais il n’est pas configuré pour l’utilisateur jenkins .

Comme je ne sais pas ce que vous avez configuré (ou pas configuré) et ce que vous vous attendiez à utiliser, je ne peux pas répondre directement, mais je peux vous expliquer comment cela fonctionne.

Si vous souhaitez utiliser Maven installé en local sur maître / esclave

  • Vous devez avoir Maven installé localement
  • Vous devez pouvoir le lancer avec l’utilisateur jenkins
    1. Exécutez sudo jenkins , puis exécutez mvn sur votre esclave pour vérifier que l’utilisateur jenkins peut exécuter mvn
    2. Si cela échoue, vous devez installer / configurer correctement Maven
  • Dans Configuration du travail, pour la version Maven, vous devez sélectionner Default . C’est le paramètre qui utilise la version installée localement sur le noeud

Si vous voulez que Jenkins installe Maven pour vous

  • Vous devez aller à la configuration globale de Jenkins et configurer une version de Maven avec l’installateur automatique (à partir du Web).
  • Dans Configuration du travail, pour la version Maven, vous devez sélectionner la version que vous venez de configurer.

Si vous cherchez juste la solution la plus simple, alors vous devriez aller à la configuration globale de jenkins

 http://localhost:32773/configureTools/ 

Et configurer maven comme ça

entrer la description de l'image ici

Ensuite, vous devez aller à votre projet. Paramètres internes que vous avez construit. Choisissez maven que vous avez créé il y a une minute.

entrer la description de l'image ici

Après avoir configuré Maven dans le monde entier Créer un travail de projet maven2 / 3 au lieu de construire un projet de style libre et un sonar post-construction fonctionne correctement!