目标服务器上安装java环境和tomcat,maven
确保tomcat/webapps下有tomcat自带的manager项目
确认manger/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />,是否是注释的,此标签表示只能本地127.0.0.1本地访问manger
tomcat添加角色和用户,tomcat/conf/tomcat-users.xml最后一行添加
<role rolename="manager-gui"/> - 允许访问HTML GUI和状态页面
<user username="admin" password="admin" roles="manager-gui"/> -编辑name和password
启动tomcat,访问manager,如http://ip:port/manager,正常情况如下图:
maven项目pom引入插件
<build>
<finalName>ssmDemo</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://ip:port/manager/text</url> -前面启动的tomcat的ip和端口,后面固定
<username>admin</username>
<password>admin</password> -前面配置的tomcat用户名和密码
</configuration>
</plugin>
</plugins>
</build>
tomcat-maven插件默认编码格式为gbk,若项目编码格式不同,pom.xml如下设置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
最后cmd或git打开到项目的根目录,与pom.xml同级目录,
执行命令mvn -e -X clean tomcat7:deploy -Dmaven.test.skip=true
-e -X打印详细执行堆栈信息,若不需要可不加,clean打包部署前清理,deploy第一次部署 -Dmaven.test.skip=true跳过测试步骤
执行命令后,服务器tomcat/webapps下如下图,并没有项目名的文件夹
浏览器访问前面配置的http://ip:port,不加项目名称,就能正常访问
项目如有更新,执行命令mvn -e clean tomcat7:redeploy -Dmaven.test.skip=true
或写入windows可执行文件,一键更新,在pom同级目录下新建test.bat,打开编辑
@echo off
echo 自动部署tomcat开始...
echo 当前时间是:%DATE% %time%
call mvn clean tomcat7:redeploy -Dmaven.test.skip=true
echo 部署完成,当前时间是:%DATE% %time%
echo 服务器启动于 %DATE% %time% ,successful completed!
pause