在做Jenkins+junit+Ant的單元測試的持續集成,但是配置的過程中,一直無法使用Ant.
在本地執行是可以正常執行,而且能生成測試結果的。
說明我的java文件編譯執行,還有build.xml腳本都是正確的.
並且我進行了配置,配置jenkins執行的權限是root,也不能成功.
心裏一直懷疑是不是ANT_HOME的原因,但是本地的/etc/profile檢查了多次都是ok的,
那問題可能是Jenkins在執行shell腳本時沒有加載 /etc/profile 文件
所以通過以下方式進行試驗:
新建一個自由風格的 Job
add build step > excute shell
填寫
whoami
echo $PATH
which ant
看到結果是這樣的:
果然是這裏環境變量有問題,多方查看,得到了原因:
Jenkins默認情況下執行shell腳本是使用非登錄方式,然而非登錄方式不會加載 /etc/profile 文件,在 Execute shell 中 添加如 #!/bin/sh -l 命令修改爲登錄方式即可解決問題。
果然,在shell前面添加ok之後,我的jenkins就執行ok了.
參考文檔:
https://bbs.testerhome.com/topics/5803
https://blog.csdn.net/u013201439/article/details/71425165