我有一個在Git(和code.amazon.com)中籤入的Java包,我有一個Ant作業來觸發包。在Ant工作中,我爲Git創建了一個macrodef,我正在執行git fetch
和git reset
,以便每次觸發Ant作業時都可以獲取最新的代碼庫。觸發Git獲取,使用Jenkins重置
當我使用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)
部分原因可能是,我的詹金斯是不能夠觸發任務作爲主機的當前用戶:這是給下面的錯誤。
爲了解決這個問題,我已經嘗試採取以下步驟:
- 創建一個全球性的證書,並使用無密碼的帳戶(RSA ID)。
- 使用與系統相同的用戶名登錄到Jenkins。
- 安裝Git和Git客戶端插件並正確設置它們。
請讓我知道如果我失去了一些東西,如果有任何出路。如果我的方法不正確,我會很高興如果你能分享其他幾個想法。
什麼是錯誤? –
簡單的git pull怎麼不能做到這一點?爲什麼抓取和重置? – fge
奧列格!我已經添加了錯誤。不管我是否做GIT拉或取。我無法調用任何GIT命令是真正的問題。 –