持續集成之 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 ,輸入賬號密碼登陸查看。

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

我們可以看到正在運行的項目,我們可以通過undeploy來刪除,然後通過我們下面的方法進行部署。

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

三、Jenkins 配置

1、下載插件

下載插件Deploy to container

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

2、添加 Deploy 構建

打開我們之前的 wenjuan 項目,在構建後操作選擇Deploy war/ear to a container

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

3、配置 deploy 構建

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

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、查看構建日誌

通過日誌可以看到部署成功。
持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

2、查看服務器

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

3、查看 tomcat 後臺

持續集成之 Jenkins 通過 Deploy 插件熱部署 java 程序(九)

沒有任何問題,熱部署成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章