Не удается запустить программу "mvn" error = 2, Нет такого файла или каталога

Я делаю сборку своих Ubuntu 14.04 LTS, но я получаю следующее:

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

Я предполагаю, что это вызвано некоторой функцией безопасности Linux, которая останавливает создание /var/lib/jenkins/workspace/videovixx без правильных разрешений которого у меня может не быть. Это проблема и как ее решить?

Ответы

Ответ 1

Здесь есть несколько вещей.

Вы либо не выбрали версию Maven в конфигурации задания. Или вы не настроили Jenkins для установки версии Maven. Или вы ожидали использовать локально установленный Maven на подчиненном устройстве, но он не настроен для пользователя jenkins.

Поскольку я не знаю, что вы настроили (или не настроили) и что вы ожидали использовать, я не могу ответить напрямую, но могу объяснить, как это работает.

Если вы хотите использовать локально установленный Maven на master/slave

  • У вас должен быть установлен Maven локально
  • Вы должны быть в состоянии запустить его с пользователем jenkins
    1. Выполните sudo jenkins, а затем выполните mvn на sudo jenkins, чтобы убедиться, что пользователь jenkins может запустить mvn
    2. Если это не помогло, вам нужно правильно установить/настроить Maven
  • В конфигурации задания для версии Maven необходимо выбрать " Default. Этот параметр использует версию, установленную локально на узле.

Если вы хотите, чтобы Дженкинс установил Maven для вас

  • Вы должны перейти к Jenkins Global Tool Configuration и настроить версию Maven с помощью автоматического установщика (из Интернета).
  • В конфигурации работы, для Maven версии, вы должны выбрать эту конкретную версию, которую вы только что настроили.

Ответ 2

Если вы ищете простое решение, вы должны перейти к глобальной конфигурации jenkins

http://localhost:32773/configureTools/

И настройте maven как этот

введите описание изображения здесь

Тогда вы должны пойти в свой проект. Внутренние настройки, которые вы создали. Выберите maven, который вы создали минуту назад.

введите описание изображения здесь

Ответ 3

После настройки Maven в глобальном масштабе Создано Создайте проект maven2/3 вместо B uild проект программного обеспечения со свободным стилем, и сонар post build отлично работает!