持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)
看過我 Jenkins 系列博文的同學應該知道,之前的 java 程序是通過 ssh 發布到服務器上面的,通過的是 shell 腳本,但是有些時候,我們並沒有服務器的權限,只有對應 tomcat 的管理權限,直接通過 tomcat 的管理控制臺發布 war 包程序,這也叫做熱發布,發布過程中不需要重啟 tomcat。
具體該如何操作,請往下看。
二、tomcat 配置
1、開啟管理用戶
-
tomcat 默認沒有這樣的用戶,需要在
TOMCAT_HOME/conf/tomcat-users.xml
添加manager-script
組和相應的用戶,增加如下幾行:<role rolename="manager-script"/> <user username="wzlinux" password="wzlinux" roles="manager-script"/> <role rolename="manager-gui"/> <user username="wzadmin" password="wzlinux" roles="manager-gui"/>
- 或者為了簡便,直接弄一個權限很大的賬號,比如下面:
<role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="admin"/> <user username="wzlinux" password="wzlinux" roles="admin,manager,manager-script,manager-gui"/>
註:配置好後需要重啟Tomcat才能生效。
2、登陸 tomcat 後臺
只有角色是manager-gui
的用戶才有管理後臺的權限,而 Jenkins 的部署只需要角色為manager-script
即可。
訪問我們的內網服務器地址 http://10.0.0.11:8081/manager ,輸入賬號密碼登陸查看。
我們可以看到正在運行的項目,我們可以通過undeploy來刪除,然後通過我們下面的方法進行部署。
三、Jenkins 配置
1、下載插件
下載插件Deploy to container
。
2、添加 Deploy 構建
打開我們之前的 wenjuan 項目,在構建後操作選擇Deploy war/ear to a container
。
3、配置 deploy 構建
WAR/EAR files:是 war 包的相對路徑(相對於工作區路徑,即在工作區中 war 包的相對路徑),如我的 maven 執行完成之後會在工作區的 target 目錄下生成項目 .war,所以這裏我的路徑就寫 target\項目.war。
Content path:tomcat 的發布路徑,即使用 localhost/(content path設置的名字)來訪問項目。
Containers:選擇 Tomcat 7.x,Credentials 添加我們上面 tomcat 添加的用戶,Tomcat URL 即為我們正常訪問 tomcat 的頁面的地址。
Deploy on failure:是發生錯誤的時候是否發布到tomcat。
四、測試結果
1、查看構建日誌
通過日誌可以看到部署成功。
2、查看服務器
3、查看 tomcat 後臺
沒有任何問題,熱部署成功。
持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)