我正试图从Solaris盒上的Jenkins的CVS存储库中取出。 Jenkins在Tomcat下运行,CVS与Jenkins和Tomcat在同一台机器上运行。当我尝试设置从CVS中提取的Jenkins作业时,它会失败并显示以下堆栈跟踪:
Building in workspace /home/tomcat/.jenkins/jobs/compile xml/workspace
cvs checkout -P -D 23 May 2013 15:49:46 -0800 -d workspace xml
ERROR: CVS Authentication failed: Connection error
org.netbeans.lib.cvsclient.connection.AuthenticationException: Connection error
at org.netbeans.lib.cvsclient.connection.LocalConnection.openConnection(LocalConnection.java:102)
at org.netbeans.lib.cvsclient.connection.LocalConnection.open(LocalConnection.java:145)
at org.netbeans.lib.cvsclient.Client$1.run(Client.java:374)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Cannot run program "cvs": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at org.netbeans.lib.cvsclient.connection.LocalConnection.openConnection(LocalConnection.java:95)
... 3 more
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:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 7 more
ERROR: Cvs task failed
在我看来Jenkins找不到cvs。当我以tomcat身份登录并输入cvs时,该命令有效。如果我在Jenkins中创建一个作业并从shell任务运行cvs命令,则该命令有效。如果我回显环境变量,例如PATH或CVSROOT,我会得到预期的结果。
詹金斯在哪里寻找简历?如何设置路径以便可以看到cvs?
-Update -
这看起来很相似:https://issues.jenkins-ci.org/browse/JENKINS-12633但我在服务器上安装了cvs
答案 0 :(得分:1)
问题最终导致Jenkins从tomcat获取路径并且tomcat没有获得与tomcat用户相同的路径(我假设因为我正在启动tomcat作为服务)。我通过在catalina.sh
的开头添加以下内容来解决这个问题PATH=$PATH:/path/to/cvs
export PATH