Не удается запустить программу "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
- Выполните
sudo jenkins
, а затем выполните mvn
на sudo jenkins
, чтобы убедиться, что пользователь jenkins
может запустить mvn
- Если это не помогло, вам нужно правильно установить/настроить 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 отлично работает!