簡體   English   中英

Maven內置Jenkins失敗,在命令行成功

[英]Maven builds in Jenkins failing, succeeding on command line

我們正在自定義Maven中的網站生成,它要做的一件事就是調用Visio,使其將某些圖表轉換為png。 我們使用一個vbs腳本,該腳本調用Visio,並通過調用Process proc = Runtime.getRuntime().exec(command);從Java類中調用該腳本Process proc = Runtime.getRuntime().exec(command); 命令是cmd /c "cd "C:\\Path\\To\\Module\\site\\target\\staging"&&exportVisioSvg.vbs "C:\\Path\\To\\inFile.vsd" "C:\\Path\\To\\outFile.png""

現在,這些代碼可以在我自己的機器上執行。 Visio被調用並生成一個文件。 當我在托管我們的Jenkins實例的服務器上運行它時,它也可以正常工作。 當我自己運行命令時,它運行正常。 最終,當我進入Jenkins \\ workspace並執行Maven構建時,它工作正常。

但是,當我使用完全相同的命令(復制並粘貼)在jenkins中運行構建時,它不會生成Visio圖表。 其他一切都運行良好,並且在我們自己拋出的錯誤之外沒有堆棧跟蹤,當圖像不在其應有的位置時,拋出的錯誤將消失。 該進程的退出代碼也為0,並且該進程生成的stdout或stderr(等效於Windows的窗口)都沒有輸出,它必須完成,否則退出代碼將為-1。 超時不是問題,因為它有50000 ms的運行時間,但總是在幾秒鍾或更短的時間內返回(您可以看到在調用腳本后立即拋出錯誤)。

我將Jenkins切換為在安裝了所有內容的管理員帳戶下運行(將其從SYSTEM移動),因此它應該可以訪問PATH。

我現在不知道該怎么辦。

這聽起來像是詹金斯常見問題解答之一。 檢查https://wiki.jenkins-ci.org/display/JENKINS/My+software+builds+on+my+computer+but+not+on+Jenkins,尤其是在“桌面訪問(Windows)”部分下

您可能正在訪問http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6468220 ,由於無法在JDK中對其進行修復,因此您需要在代碼中對其進行優化。

問題是啟動Visio時,它是作為Jenkins服務的子級啟動的,該服務運行時沒有桌面交互。 Microsoft將其Office產品操作限制在可能會生成用戶看不到的提示的地方。 即使您添加了允許與桌面交互的功能,也無法正常工作,在我的情況下,它返回了以下錯誤值2032466051。解決方案是僅以用戶身份運行它,並在每次需要重新啟動服務器時手動啟動Jenkins實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM