一、Maven项目创建
1.1 新建工程,Maven->Maven Project
1.2 选择archeType:maven-archetype-webapp
1.3 输入Group Id, Artifact Id, Version, Package,这四个属性唯一确定项目的坐标。
1.4 Development Assembly:test信息不需要打包,需要移除。
1.5 Java Compiler:Compiler compliance level 一般选择1.6.
二、Maven集成tomcat热部署配置
本机使用Eclipse-jee-kepler,apache-tomcat-7.0.47,JDK1.6.0_05和apache-maven-3.2.2
2.1 修改tomcat下conf/tomcat-users.xml配置,如增加用户zgr,这里虽然没有显示定义manager-script角色,显然,这是tomcat默认就有的,只是其下面没有添加任何用户:
<user username="zgr" password="zgr" roles="manager-script"/>
2.2 修改apache-maven-3.2.2\conf\settings.xml,定义tomcat7服务器,id是自定义的,下面还会用到,用户名密码与2.1tomcat-users.xml配置中选择的用户一致。
<servers> <server> <id>tomcat7</id> <username>zgr</username> <password>zgr</password> </server> </servers>
2.3 项目pom.xml添加插件tomcat7-maven-plugin,server值"tomcat7"引用的就是2.2定义的server id。
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8088/manager/text</url> <server>tomcat7</server> </configuration> </plugin>
三、项目打包发布到tomcat
条件都已准备好了,只需要启动了。
3.1 手动启动tomcat7。
3.2. 项目右键选择Run As-> Run Configurations,Maven Build下New launch configuration:
Base directory:项目所在目录
Goals:构建目标tomcat7:redeploy
3.3 点击Run按钮,打包发布。
3.4 访问:http://localhost:8088/zgr-springmvc
后记
配置的过程并没有这么顺利,说说遇到的问题:
1 网上有文章说2.1配置好后,启动tomcat,访问:http://localhost:8088/manager,在弹出界面输入用户名密码,可以进入tomcat默认页面。其实不行,会报403访问被拒绝。而如果把zgr用户的角色指定为"manager-gui",那么可以访问上述链接。
2 2.3配置中url必须配置为http://ipaddr:port/manager/text。其实这样看来,tomcat完全可以是远程机器的。如果配置为http://ipaddr:port/manager/html,而zgr的roles无论指定为"manager-script"或者"manager-gui",都会报403错误。
3 3.2 Goals配置中tomcat7:redeploy,其中tomcat7是tomcat7-maven-plugin插件的Goal Prefix,redeploy是该插件的一个目标。如果改为tomcat:redeploy,那么Maven默认找寻Goal Prefix是tomcat的插件,并执行其redeploy目标。
个中教训,只有亲历者才能明白。
参阅:http://blog.csdn.net/foxhlc/article/details/8725992
http://wenku.baidu.com/link?url=hIZIhpibzQYC5aTXvPF-abe1UfFxZXMbJ6-GOnUIcred7KCKt-UbfC5ATGDZaGvAnWyc9jv-j1FeYk-0ciwGayB5qoFMFmHe5vZteMB9caW