按照一般的部署流程,直接把war包塞到webapps下面即可。
但如果tomcat在远程主机里,那么你在做上面这步之前恐怕还需要先本地打包,然后远程连接服务器主机,最后才能再复制war包过去。
这着实是有些繁琐的。
那么有没有更好的办法呢?
其实tomcat本身就有一个管理页面,一个新的tomcat的webapps下面是有着manager这个项目的。你不要删除啊,这个里面就有管理逻辑和页面。但是光有页面还是不行的,tomcat默认管理是不开放的,你还需要去配置用户和权限。
编辑tomcat/conf下面的tomcat-users.xml,添加如下内容:
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin123" roles="admin,manager,manager-gui,manager-script,manager-jmx,manager-status"/>
该配置的大概意思就是新建一个叫做admin/admin123的用户,它拥有了很多权限进行操作。
然后这时候,我们启动tomcat。在地址栏输入:localhost:8080/manager就会发现让输入账号密码,输入admin/admin123之后发现:
我们可以对已经部署的项目进行停止、重新部署以及删除操作。
在下面还可以直接上传war包部署新的项目。
这是一个不错的方法。它省去了操作远程主机的步骤。
但如果你的项目是maven项目的话,这还不够方便。
对于maven的web项目来说,它不需要手动打war包,也不需要去访问manager页面,只需要run一下就可以把本地项目部署到远程。
这时候需要我们去配置maven了。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 指定项目部署的URL -->
<url>http://localhost:8080/manager/text</url>
<username>admin</username>
<password>admin123</password>
<update>true</update>
<!-- 指定项目部署路径,如果不设置为默认项目名称 -->
<!--<path>/mobile</path>-->
</configuration>
</plugin>
</plugins>
</build>
在pom.xml里添加以下信息。你需要改动的是远程tomcat的主机和端口(url里只需要修改/manager/text之前的),以及manager的用户名和密码。
然后maven命令 mvn tomcat7:deploy就把该项目部署到远程了。
如果你想删除该项目使用tomcat7:undeploy即可。