web-dev-qa-db-fra.com

Impossible d'exécuter le programme "mvn" error = 2, aucun fichier ni répertoire de ce type

Je construis 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.<init>(Proc.Java:244)
    at hudson.Proc$LocalProc.<init>(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.<init>(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é de Linux qui empêche la création du répertoire/var/lib/jenkins/workspace/videovixx sans les autorisations appropriées Que je n’aurais peut-être pas. Est-ce le problème et comment puis-je le résoudre?

21
Mario Dennis

Il y a plusieurs choses ici.

Soit vous n'avez pas sélectionné la version Maven dans la configuration du travail ..__ Ou vous n'avez pas configuré Jenkins pour installer une version Maven ..__ ou vous vous attendiez à utiliser Maven installé localement sur l'esclave, mais ce dernier n'est pas configuré pour l'utilisateur jenkins .

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

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

  • Maven doit être installé localement
  • Vous devez pouvoir le lancer avec jenkins user
    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 Maven correctement
  • Dans la configuration du travail, pour la version Maven, vous devez sélectionner Default. Ce paramètre utilise la version installée localement sur le nœud.

Si vous voulez que Jenkins installe Maven pour vous

  • Vous devez accéder à Jenkins Global Configuration et configurer une version Maven avec un programme d’installation automatique (à partir du Web).
  • Dans la configuration du travail, pour la version Maven, vous devez sélectionner that la version particulière que vous venez de configurer.
40
Slav

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

http://localhost:32773/configureTools/

Et configurez maven comme ça

 enter image description here

Ensuite, vous devez aller à votre projet. Dans les paramètres que vous avez construits. Choisissez le maven que vous avez créé il y a une minute.

 enter image description here

19
Marcin Szymczak

Après avoir configuré Maven de manière globale Créé Construisez un projet maven2/3 job au lieu de B Créez un projet logiciel de style libre et le sonar de post-construction fonctionne bien!

0
Radhakrishnan