Java Jenkins和NodeJS插件-权限被拒绝错误=13

Java Jenkins和NodeJS插件-权限被拒绝错误=13,java,node.js,jenkins,jenkins-plugins,Java,Node.js,Jenkins,Jenkins Plugins,我正在运行最新版本的Jenkins(v1.563)和Node(0.10.28) 我有一个构建良好的Java项目 当我将预构建步骤添加为节点脚本(选中了提供节点&npm bin/folder to PATH)时,我得到了以下错误,尽管我已经为所有内容(节点、tomcat、jenkins)授予了777权限 生成步骤“执行节点脚本”将生成标记为失败。 当我删除nodejs步骤时,它构建得很好 我的脚本很简单, node --version grunt --version bower --version

我正在运行最新版本的
Jenkins(v1.563)
Node(0.10.28)

我有一个构建良好的Java项目

当我将预构建步骤添加为节点脚本(选中了提供节点&npm bin/folder to PATH)时,我得到了以下错误,尽管我已经为所有内容(节点、tomcat、jenkins)授予了777权限

生成步骤“执行节点脚本”将生成标记为失败。
当我删除nodejs步骤时,它构建得很好
我的脚本很简单,

node --version
grunt --version
bower --version
完全错误:

Checking out Revision e90d7b870646165dba30bd1a663644c0292e9844 (origin/master)
 > git config core.sparsecheckout
 > git checkout -f e90d7b870646165dba30bd1a663644c0292e9844
 > git rev-list e90d7b870646165dba30bd1a663644c0292e9844
[workspace] $ /home/sam/Apps/apache-tomcat-8.0.5/temp/hudson5090518537487301688.js

FATAL: command execution failed
java.io.IOException: Cannot run program "/home/sam/Apps/apache-tomcat-8.0.5/temp  /hudson5090518537487301688.js" (in directory "/home/sam/.jenkins/jobs/WhiteSwan   /workspace"): error=13, Permission denied

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:775)
at jenkins.plugins.nodejs.tools.DecoratedLauncher.launch(DecoratedLauncher.java:49)
at jenkins.plugins.nodejs.tools.NpmPackagesBuildWrapper$2.launch(NpmPackagesBuildWrapper.java:88)
at hudson.Launcher$ProcStarter.start(Launcher.java:355)
at hudson.Launcher$ProcStarter.join(Launcher.java:362)
at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:84)
at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:42)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:745)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.build(MavenModuleSetBuild.java:909)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:676)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:518)
at hudson.model.Run.execute(Run.java:1706)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)

Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:187)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
... 18 more

Build step 'Execute NodeJS script' marked build as failure
Finished: FAILURE
检出版本e90d7b870646165dba30bd1a663644c0292e9844(原始/主版本)
>git config core.sparsecheckout
>git签出-f e90d7b870646165dba30bd1a663644c0292e9844
>git版本列表e90d7b870646165dba30bd1a663644c0292e9844
[workspace]$/home/sam/Apps/apache-tomcat-8.0.5/temp/hudson5090518537487301688.js
致命:命令执行失败
java.io.IOException:无法运行程序“/home/sam/Apps/apache-tomcat-8.0.5/temp/hudson5090518537487301688.js”(目录“/home/sam/.jenkins/jobs/WhiteSwan/workspace”):错误=13,权限被拒绝
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
位于hudson.Proc$LocalProc(Proc.java:244)
在hudson.Proc$LocalProc.(Proc.java:216)
位于hudson.Launcher$LocalLauncher.launch(Launcher.java:775)
位于jenkins.plugins.nodejs.tools.DecoratedLauncher.launch(DecoratedLauncher.java:49)
位于jenkins.plugins.nodejs.tools.NpmPackagesBuildWrapper$2.launch(NpmPackagesBuildWrapper.java:88)
位于hudson.Launcher$ProcStarter.start(Launcher.java:355)
在hudson.Launcher$ProcStarter.join(Launcher.java:362)
位于jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:84)
位于jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:42)
在hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
位于hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:745)
位于hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.build(MavenModuleSetBuild.java:909)
位于hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:676)
位于hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:518)
位于hudson.model.Run.execute(Run.java:1706)
运行(MavenModuleSetBuild.java:529)
在hudson.model.ResourceController.execute(ResourceController.java:88)
运行(Executor.java:231)
原因:java.io.IOException:错误=13,权限被拒绝
位于java.lang.UNIXProcess.forkAndExec(本机方法)
在java.lang.unixproces中。(unixpprocess.java:187)
在java.lang.ProcessImpl.start(ProcessImpl.java:134)处
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
... 还有18个
生成步骤“执行节点脚本”将生成标记为失败
完成:失败

我通过使用sudo运行Tomcat解决了这个问题。请记住创建一个setenv.sh文件(在中阅读有关setenv的更多信息)。记得在用sudo运行tomcat之前在setenv中设置HOME。\p>修复了没有sudo的问题;我想在root下运行Jenkins是非常不安全的

以下是工作设置:

/var/lib/jenkins/tools
应属于
jenkins:jenkins

drwxr-xr-x   6 jenkins jenkins      4096 May 12 15:12 tools
如果需要全局安装任何nodejs包(例如,grunt),更简单的方法是避免安装jenkins window全局npm包(它需要根权限),但在linux控制台中运行此程序:

sudo npm install -g grunt

它将为每个人安装grunt,并且Jenkins将能够在构建过程中使用它。

tomcat就是包含Jenkins服务器的那个吗?我收到了相同的错误消息,但我是这样解决的:
sudo npm install -g grunt