2017-07-04 228 views
0

我目前正在學習和實現Jenkin的管道,以實現Java Web應用程序的自動集成。Jenkins部署到Tomcat失敗

我的計劃是,一旦開發者成功提交併推送他們的代碼,Jenkins就會在管理服務器上檢查代碼,構建項目,停止當前運行的Tomcat,將項目部署到Tomcat並重新啓動。

爲了測試目的,我正在嘗試一切,包括在本地機器上運行Tomcat和Jenkins。但詹金斯運行自己的(通過執行命令「Java -jar jenkins.war」),但不使用tomcat

除了啓動Tomcat,一切都正常工作。下面的 是tomcat重啓的管道代碼片段。

stage('Restart') { 
     steps { 
      echo 'Restarting Tomcat.....' 
      sh ''' 
       cd ~/PATH-TO-Tomcat/apache-tomcat-8.0.44/bin 
       ./startup.sh 
      ''' 
     } 
}  

正如您所看到的,它只是轉到tomcat目錄並執行startup.sh腳本。但是,執行重新啓動階段時,只有消息「Tomcat已啓動」。被記錄在控制檯日誌文件中,但是在與本地主機進行檢查時,Tomcat根本沒有啓動。

我試圖通過使用終端執行命令手動啓動tomcat,它工作正常。

請幫

謝謝

+0

您是否嘗試過嘗試啓動Tomcat $ CATALINA_HOME/bin/startup.sh,假設定義了CATALINA_HOME –

回答

0

從詹金斯開始shell腳本時,我也遇到了這個問題。

問題

的問題是shell腳本的詹金斯構建的範圍內開始。一旦構建停止,它的行爲就像關閉正在運行腳本的終端。因此,Tomcat在作業結束時停止。

解決方案(種)

嘗試在後臺(How to run a shell script in the background and get no output)的分離從作業腳本啓動Tomcat。或者您可以將Tomcat作爲服務安裝(java install tomcat as service)並從Jenkins開始服務。