it-swarm.com.de

Programm "mvn" kann nicht ausgeführt werden error = 2, Keine solche Datei oder Verzeichnis

Ich mache einen Build auf meinem Ubuntu 14.04 LTS, erhalte aber Folgendes:

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

Ich gehe davon aus, dass dies durch ein Linux-Sicherheitsmerkmal verursacht wird, das die Erstellung von/var/lib/jenkins/workspace/videovixx ohne die richtigen Berechtigungen Verhindert, die ich möglicherweise nicht habe. Ist das das Problem und wie löse ich es?

21
Mario Dennis

Hier gibt es mehrere Dinge.

Sie haben entweder die Maven-Version in der Jobkonfiguration nicht ausgewählt Oder Sie haben Jenkins nicht für die Installation einer Maven-Version konfiguriert Sie haben erwartet, lokal installierte Maven auf dem Slave zu verwenden, aber sie ist nicht für den Benutzer jenkins konfiguriert .

Da ich nicht weiß, was Sie konfiguriert haben (oder nicht konfiguriert haben) und was Sie erwartet haben, kann ich nicht direkt antworten, aber ich kann erklären, wie es funktioniert.

Wenn Sie lokal installierte Maven auf Master/Slave verwenden möchten

  • Sie müssen Maven lokal installiert haben
  • Sie müssen es mit jenkins user starten können
    1. Führen Sie Sudo jenkins und dann mvn auf Ihrem Slave aus, um zu überprüfen, ob der Benutzer jenkinsmvn ausführen kann.
    2. Wenn dies fehlschlägt, müssen Sie Maven ordnungsgemäß installieren/konfigurieren
  • In der Jobkonfiguration für Maven Version müssen Sie müssen Default auswählen. Diese Einstellung verwendet die lokal auf dem Knoten installierte Version

Wenn Sie möchten, dass Jenkins Maven für Sie installiert

  • Sie müssen zu Jenkins Global Configuration gehen und eine Maven-Version mit automatischem Installationsprogramm (über das Web) konfigurieren.
  • In der Jobkonfiguration müssen Sie für Maven Version das bestimmte Version auswählen, die Sie gerade konfiguriert haben.
40
Slav

Wenn Sie nur nach einer einfachsten Lösung suchen, sollten Sie zur globalen Konfiguration von Jenkins wechseln

http://localhost:32773/configureTools/

Und Maven so konfigurieren

 enter image description here

Dann musst du zu deinem Projekt gehen. In den Einstellungen, die Sie erstellt haben. Wähle einen Maven, den du vor einer Minute erstellt hast.

 enter image description here

19
Marcin Szymczak

Nachdem Sie Maven global konfiguriert haben Erstellt Erstellen Sie ein Maven2/3-Projekt Job anstelle von B, um ein Free-Style-Softwareprojekt zu erstellen und Postbuild-Sonar funktioniert einwandfrei!

0
Radhakrishnan