最近在使用maven,順便嘗試了下tomcat部署。網上找到了很多資料但是都不是最新的,所以貼上比較新的Tomcat7部署代碼和配置,方便以後回顧-->測試OK。
1. 首先是配置Tomcat conf 目錄下的tomcat-users.xml,配置用戶權限,提供給本地Maven使用
<role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
注意:剛開始我只配置了manager-gui這個role,在本地沒問題,能正常登陸 http://127.0.0.1/manager,但是訪問http://127.0.0.1/manager/text就不行了,所以如果需要配置的朋友可以把我的這個復制一份過去。
成功登陸後就說明Tomcat權限已經配置好了,接下來就是本地Maven的配置了。
2.我的Maven項目用的是聚合工程,所以我在parent pom的項目裡加了這段插件,Tomcat6我還沒試過,所以不知道行不行。
<!-- 遠程部署 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://xxxxxx.xx.xxx:8082/manager/text</url> <server>test</server> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin>
解釋下 ur l就是你要部署到哪個端口的Tomcat下,不是項目的目錄。Tomcat7默認這個,如果是6是不用加 text
3.接下來是Maven裡面的settings.xml文件的配置,很簡單,代碼如下:
<server> <id>test</id> <username>tomcat</username> <password>tomcat</password> </server>
注意:這裡的id對應的是Maven項目 pom.xml裡面的 server , 其他的username 和 password都是一致的,即 Tomcat登錄的用戶名和密碼。
4.如果以上配置都OK了,最後就是測試了,我這裡是聚合工程,所以我是去我的子項目裡面運行發布命令。記得如果要發布一定要記得提前啟動Tomcat,否則會報錯。
PS:其中在這個過程中遇到了兩個明顯問題,一個是401,一個是403。
401:基本上是用戶名或者密碼配置的不正確。
403:有兩種情況,
1):pom裡配置的url後綴是html,而不是text。這種是6的格式,7不能用,後綴只能是text。
<url>http://localhost:8080/manager/html</url>
2):tomcat用戶的權限配置不正確。按文中配置就ok。
還有就是,tomcat要先啟動,不要用IDE啟動,手動運行tomcat的startup.bat/sh。
OK了。