使用maven的自動部署功能可以很方便的將maven工程自動打包並且部署到遠程tomcat服務器,省去一些繁瑣的操作,節省大量時間。
我使用的tomcat版本是8.5,tomcat7和tomcat8都可以,安裝配置過程比較簡單,在此就省略了。
以下是我的安裝部署過程:
1.配置tomcat
先是修改tomcat-users.xml文件,該文件在安裝目錄的conf文件夾下面,我的是在/usr/local/apache-tomcat-8.5.11/conf,在<tomcat-users></tomcat-users>節點中增加:
<role rolename="manager-gui" /> <role rolename="manager-script" /> <user username="tomcat" password="tomcat" roles="manager-gui, manager-script" />
將上面的password改為自己的密碼,注意對於tomcat9來說,不能同時賦予用戶manager-script和manager-gui角色。
保存tomcat-users.xml。
在tomcat服務器的conf/Catalina/localhost/目錄下創建一個manager.xml文件,寫入如下值:
<?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
以上這段照抄即可,默認情況下,Tomcat的Manager和Host-Manager只接受本機的請求,而要讓它接受遠程的請求,需要添加上面提到的manager.xml的配置。
保存退出。然后在bin目錄下面執行startup.sh啟動tomcat。
然后在瀏覽器中輸入http://serverip:port/manager/html,此時會彈出要求輸入用戶名和密碼對話框,輸入manager-gui對應的用戶和密碼登錄管理控制台(其中serverip為服務器ip,如果服務器在本地就是localhost或者127.0.0.1,端口為tomcat端口,默認8080)。以此確認manager是否配置正確。正確結果示例如下:
2.在maven項目中配置
在pom.xml文件中,在plugins節點下添加如下plugin節點:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://192.168.199.201:8080/manager/text</url> <username>tomcat</username> <password>tomcat</password> <update>true</update> <path>/test_mvn</path> </configuration> </plugin>
將上面的serverip和port換成自己tomcat服務器的ip和端口。密碼換成上面配置的manager-script角色的密碼。path改為項目在tomcat服務器中的部署路徑。
然后進行部署,如果是第一次部署,運行tomcat7:deploy進行自動部署(對於tomcat8,9,也是使用tomcat7命令),如果是更新了代碼后重新部署更新,運行tomcat7:redeploy,如果第一次部署使用tomcat7:redeploy,則只會執行上傳war文件,服務器不會自動解壓部署。如果路徑在tomcat服務器中已存在並且使用tomcat7:deploy命令的話,上面的配置中一定要配置<update>true</update>,不然會報錯。