Maven+Tomcat實現熱部署
阿新 • • 發佈:2019-02-17
前言:在我們開發中,專案修改後,需要重新部署到伺服器上,一般過程就是先停止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來部署