链接:https://www.zhihu.com/question/44780102/answer/122181341
来源:知乎
tomcat:start
启动tomcattomcat:stop
停止tomcattomcat:undeploy
停止一个war包tomcat:run启动嵌入式tomcat ,并运行当前项目通过文档我们可以了解到:deploy 的动作其实只有一个,就是部署 war包。所以我们在部署之前必须要做start 。而start 是启动本机的tomcat,这个tomcat 是我们下载的那个。可以看出来,前5个命令其实都是对本机的tomcat做的操作。
只有run。提到了嵌入式tomcat。
所以查了下什么是嵌入式tomcat。嵌入式tomcat 就是把tomcat嵌入到java应用中去。在程序中配置tomcat组件。并控制tomcat 的启动和关闭。而不通过控制台和管理工具控制tomcat。
所以其实嵌入的这个tomcat其实是另一个写在程序里的tomcat了。
那这个tomcat是嵌入到哪里了?我们自己的应用吗?肯定不是,因为他是我们写的web应用的容器。
然后我想到:maven是java写的啊,是一个java应用啊。还有eclipse ,也是java写的,所以我发现:run这个命令是控制的maven嵌入的那个tomcat。它可以很方便的控制。开发人员无需搭建Tomcat的环境就可以使用内嵌式Tomcat进行开发,减少搭建J2EE容器环境的时间和开发时容器频繁启动所花时间,提高开发的效率.
所以:区别:启动的是不同的tomcat。deploy是部署没有启动的功能,run是启动+运行当前项目。run更方便。
一、Tomcat6, Tomcat7中为了更好,更精确的实现权限控制,引入了多个用户角色,如manager-ui:用于查看HTML页面, 用于查看test的manager-script等。
- <role rolename="manager"/>
- <role rolename="manager-gui"/>
- <role rolename="admin"/>
- <role rolename="admin-gui"/>
- <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>
二、Tomcat7中部署后的url为:
/manager/html HTML的GUI界面
<server>
<id>tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles=" manager-script,manager-gui"/>
<groupId>oorg.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
在goals中输入package tomcat:redeploy
注:在编译和发布过程中,可能会以遇到内存不足的情况,在JRE tab页中输入-Xms256m -Xmx1024m,具体自己调整。