Tomcat7 与 maven
tomcat maven plugin是通过一些指令来操纵tomcat的所以,在操作之前,有时要先打开tomcat服务器
今天碰到一个奇怪问题,jetty与struts2.x 的 s:debug 标签貌似不兼容。
无奈之下转回tomcat。
网上搜索可知Tomcat插件早就出现了。
pom.xml
- ...
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
- <version>1.1</version>
- <configuration>
- <!-- tomcat v7为如下配置。 tomcat v6 为"http://localhost:8080/manager" -->
- <url>http://localhost:8080/manager/text</url>
- <!-- 这里不能叫"localhost" -->
- <server>local_tomcat</server>
- <!-- 不打包 -->
- <ignorePackaging>true</ignorePackaging>
- </configuration>
- </plugin>
- ...
${USER}/.m2/settings.xml
- ...
- <servers>
- <server>
- <id>local_tomcat</id>
- <username>admin</username>
- <password>admin</password>
- </server>
- </servers>
- ...
${TOMCAT_HOME}/conf/tomcat-users.xml
- ...
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <user username="admin" password="admin" roles="manager-gui, manager-script"/>
- ...
可以把tomcat当作一个嵌入式容器来使用。
mvn tomcat:run
mvn tomcat:run-war
可以轻松把war包部署到真正的tomcat容器的 webapps
当然了,部署前必须开启服务器。
mvn tomcat:redeploy
tomcat插件官网
补记:
要热部署调试程序也很简单,记得 以debug方式启动 mvn tomcat:run 即可。
如果以run方式启动 mvn tomcat:run的话每次改代码都需要重新启动嵌入式服务器,很麻烦。
开发时,如果用struts2.x 记得把struts.i18n.reload = true配置好。