1. 程式人生 > >Maven+Tomcat實現熱部署

Maven+Tomcat實現熱部署

前言:在我們開發中,專案修改後,需要重新部署到伺服器上,一般過程就是先停止tomcat伺服器,然後將修改過的class檔案重新覆蓋到專案上,再啟動tomcat。或者是重新打war包,刪除tomcat上舊版本的專案和war,再將war放到tomcat裡(也可直接放war上去覆蓋舊war,啟動tomcat的時候會自動解壓war,這樣會自動覆蓋舊版本的專案),然後重新啟動tomcat,這樣非常繁瑣,尤其是在有多個專案的時候。為了解決這種問題,我們可以用maven+tomcat來配置熱部署(不用關閉tomcat就可以直接部署)。

一、Tomcat配置

1、修改Tomcat的conf/tomcat-users.xml配置檔案。新增使用者名稱、密碼、許可權。

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

既如下圖所示:
這裡寫圖片描述

2、重新啟動Tomcat。
(1)訪問tomcat主頁,驗證是否配置成功,點選其中一處的Manager App,輸入使用者密碼登入。(此步可省略)
這裡寫圖片描述

二、maven配置

1、配置pom.xml檔案。

<build>
<plugins> <!-- 配置Tomcat外掛 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <!-- 一般eclipse啟動專案時候這裡配置什麼埠,訪問專案的時候就是什麼埠;用了熱部署後, 是部署到目標tomcat裡,因此這個port算是沒用,訪問時,是在tomcat的埠 -->
<port>8081</port> <!-- 部署到ROOT下 --> <path>/</path> <!-- tomcat的地址和埠,manager/text是固定的 --> <url>http://192.168.70.18:8080/manager/text</url> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin> </plugins> </build>

2、使用maven命令進行部署。
(1)如圖所示,命令為clean tomcat7:redeploy,如果是第一次部署,則為deploy,由於pom.xml配置的tomcat外掛中的path為反斜槓/,這樣就表示部署到tomcat的ROOT專案(ROOT專案肯定是部署過的),因此算是覆蓋tomcat自帶的ROOT專案,用redeploy重新部署。
(2)記得給Skip Tests 打上勾,跳過測試,或者不打勾,則命令為:
clean tomcat7:redeploy -DskipTests
這裡寫圖片描述

三、其他方法(不推薦)

1、在第一步的重新啟動tomcat並登入後,找到下圖所示,可以將war包直接部署到tomcat。
2、如果專案很多,這樣也比較繁瑣,因此推薦maven來部署
這裡寫圖片描述