Jenkins部署web項目到Tomcat(熱部署)

使用這個方式的話須要tomcat中有初始時Manage這個項目,本質上是經過http://ip:port/manager/html這個地址的上傳接口進行上傳,進行熱部署(須要遠程tomcat 必須開啓 )html

1、需在tomcat中配置用戶帳號和權限:

  在conf/tomcat-users.xml中添加以下配置apache

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>

2.maven中配置 tomcat 帳號(在後續測試中,未配置,亦可成功構建???)tomcat

  在setting.xml 文件中添加服務器

<server>
   <id>jen-tomcat</id>
   <username>tomcat</username>
   <password>123456</password>
</server>

3.須要在項目的pom.xml中配置maven

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <url>http://192.168.42.129:8090/manager/text</url>
        <update>true</update>
        <server>jen-tomcat</server> 
<username>tomcat</username>
<password>123456</password>
<path>/${finalName}</path>
</configuration>
</plugin>

url:配置本地或者遠程的TOMCAT
path:就是在部署上去之後在http://ip:port/manager/html裏面看到部署結果
server:就是一個名字和你maven的settings.xml對應的id一致
增長update 配置項,更新發布的文件測試

2、接下來就是在jenkins中的配置

  一、配置構建環境:(須要用tomcat7:deploy部署)ui

    

  二、要遭構建後操做中選擇Deploy war/ear to a container(需安裝Deploy to container Plugin插件)url

   

    進行配置Tomcatspa

    

WAR/EAR files:是項目的war包位置,這裏都是配置爲 target/項目名.war插件

Context path:訪問項目的路徑

Credentails:這裏是Tomcat用戶,就是配置在tomcat 的conf/tomcat-users.xml 文件中的

而後再點擊右側的add 將用戶添加進去  ,只須要添加 用戶名 和 密碼就能夠了

Tomcat URL: 這裏寫訪問Tomcat的路徑 http://主機ip:端口號 

 3、保存,而後當即構建

 

這樣作有不少弊端:(我的觀點,可能由於目前見識短而不夠充分認識) 
1. 這樣作無法對以前的項目備份 
2. 這種部署方式會致使tomcat內原項目的不少資源釋放不掉,部署屢次後會報OutOfMemoryError這個錯誤. 

因此,綜上考慮可以使用另外一種部署方式,使用腳本部署,實際上腳本部署是使用jenkins把打包後的war包上傳到服務器,上傳成功後執行服務器的腳本,該腳本會備份,並強制kill tomcat進程,部署war包後再啓動tomcat

相關文章
相關標籤/搜索