maven project,特別是maven module項目默認情況下是是無法直接通過tomcat等容器部署的,如圖,我要部署fastdev_web這個maven module,可以看出在tomcat部署對話框中是無法選擇的,而且還可以看出,不管fastdev_web不能選,所有的maven項目都不能選:
這是因為maven項目的目錄結構並不是標准的web目錄結果,我們通過mavne骨架創建的項目,它的web.xml項目描述符不在tomcat所能識別的目錄下,所在部署時才不能選擇。這時就需要tomcat6-maven-plugin這個插件了。不然每次都得clean package打成war后手動部署到tomcat容器上去,最麻煩的就是這個尼瑪不能實時生效(每次修改都得clean package打成war包后放到tomcat上去)。這樣的話也忒麻煩了(我就這樣干了半個月)...
pom.xml tomcat插件配置(此處用tomcat6,注意tomcat7的url跟tomcat6的不一樣):
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat6-maven-plugin</artifactId> <version>2.0-beta-1</version> <configuration> <url>http://localhost:8080/manager</url> <server>tomcat</server> <username>admin</username> <password>admin</password> <path>/fastdev_web</path> <contextReloadable>true</contextReloadable> </configuration> </plugin>
配置完這個后pom.xml還配置C:\Users\3panjiacai.MSS\.m2\settings.xml(maven的全局配置,您的路徑肯定跟我的不一樣):
settings.xml代碼如下,這個id需跟我們pom.xml配置的id一致:
</servers> <server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server> </servers>
settings.xml配置完后,就需給admin用戶賦權了,這個在tomcat安裝目錄下的conf/tomcat-users.xml文件,賦權代碼如下:
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="manager"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="admin,manager,manager-gui,admin-gui,manager-script,manager-jmx,manager-status"/>
到此所有配置完成,然后就可進行熱部署了:
1、在myeclipse中運行,非遠程(tomcat沒有啟動)
運行:clean tomcat6:run
重新部署:clean tomcat6:redeploy
清除部署:tomcat6:undeploy
2、在遠程服務器運行(tomcat必須啟動),執行完后去tomcat webapp目錄下看看發生了生命
部署:clean tomcat6:deploy
重新部署:clean tomcat6:redeploy
清除部署:tomcat6:undeploy