无法运行程序“mvn"错误=2,没有这样的文件或目录
我正在我的 Ubuntu 14.04 LTS 上进行构建,但得到以下结果:
I'm doing a build on my Ubuntu 14.04 LTS but I'm getting the following:
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 在没有正确权限的情况下创建我可能没有.这是问题吗?我该如何解决?
I'm assuming that this caused by some linux security feature that stops the /var/lib/jenkins/workspace/videovixx from being created without the correct permissions which I might not have. Is this the problem and how do I solve it?
推荐答案
这里有很多东西.
您要么没有在作业配置中选择 Maven 版本.或者你没有配置 Jenkins 来安装 Maven 版本.或者你希望在 Slave 上使用本地安装的 Maven,但它没有为 jenkins
用户配置.
You either didn't select Maven version in Job configuration.
Or you didn't configure Jenkins to install a Maven version.
Or you expected to use locally installed Maven on the Slave, but it's not configured for jenkins
user.
由于我不知道你配置了什么(或没有配置)以及你期望使用什么,我无法直接回答,但我可以解释它是如何工作的.
Since I don't know what you've configured (or didn't configure) and what you expected to use, I can't answer directly, but I can explain how it works.
- 您必须在本地安装 Maven
- 您必须能够使用
jenkins
用户启动它
- 执行
sudo jenkins
,然后在你的Slave上执行mvn
验证jenkins
用户是否可以运行mvn
- 如果失败,您需要正确安装/配置 Maven
- Execute
sudo jenkins
, and then executemvn
on your Slave to verify thatjenkins
user can runmvn
- If that fails, you need to properly install/configure Maven
Default
.这是使用本地安装在节点上的版本的设置
Default
. This is the setting that uses the version that's installed locally on the node- 您必须转到 Jenkins 全局工具配置,并使用自动安装程序(来自网络)配置 Maven 版本.
- 在作业配置中,对于 Maven 版本,您必须选择您刚刚配置的那个特定版本.
相关文章