【发布时间】:2015-08-12 00:55:24
【问题描述】:
我有一个在 Git(和 code.amazon.com)中检查的 Java 包,并且我有一个 Ant 作业来触发该包。在 Ant 作业中,我为 Git 创建了一个宏定义,我正在执行 git fetch 和 git reset,以便每次触发 Ant 作业时都可以获得最新的代码库。
当我使用 Eclipse 触发 Ant 作业时,它正在工作。如果我使用ANT –buildfile my_buildfile.xml 从终端运行 Ant 作业,它也可以工作。
现在我已经在我的机器上设置了 Jenkins 并尝试运行 Ant 文件。 Jenkins 无法在 Ant 文件中触发 Git 作业。它给出了以下错误:
/rhel5pdi/workplace/bangshis/EpubYJConvPerfWorkspace/src/EpubYJConvPerfLinux/Jenkins_Linux_build_Global.xml:81: The following error occurred while executing this line:
/rhel5pdi/workplace/bangshis/EpubYJConvPerfWorkspace/src/EpubYJConvPerfLinux/Jenkins_Linux_build_Global.xml:99: Execute failed: java.io.IOException: Cannot run program "git": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at java.lang.Runtime.exec(Runtime.java:617)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
此错误的部分原因可能是,我的 Jenkins 无法作为主机的当前用户触发作业。
为了解决这个问题,我尝试了以下步骤:
- 创建全局凭据并使用无密码帐户 (RSA ID)。
- 使用与系统相同的用户名登录 Jenkins。
- 安装 Git 和 Git 客户端插件并进行适当设置。
如果我遗漏了什么,以及是否有任何出路,请告诉我。如果我的方法不正确,如果您能分享一些其他想法,我会很高兴。
【问题讨论】:
-
一个简单的 git pull 怎么不能解决问题?为什么要获取和重置?
-
奥列格!!我添加了错误。我是否进行 GIT 拉取或获取都没关系。我无法调用任何 GIT 命令是真正的问题。
-
@Shubhankar Raj 你能从你的詹金斯机器上的终端运行 git 吗?
-
@OlegPavliv :是的..我是。
标签: java eclipse git ant jenkins