昨天的重装环境也是为了实验自动化部署,踩了好多坑,但还是做到了,也许这就是不看英文文档的苦吧
大致思路
网上找了一些教程,我大概懂了这个部署的流程,首先在远程tomcat的tomcat-users.xml
里添加管理员,然后在maven的settings.xml
里设置访问tomcat的账号密码,最后在项目的pom.xml
设置远程服务器的地址,输入命令就自动部署了
第一步
登录服务器,在tomcat的../tomcat/conf/tomcat-users.xml
添加如下代码
1 | <role rolename="admin-gui"/> |
其实这个就是一个大坑,Tomcat会提示你,很多教程也会告诉你Tomcat8以后
Users with the manager-gui role should not be granted either the manager-script or manager-jmx roles.
也就是manager-gui,manager-script,manager-jmx 不能一起被授权
结果听话的我,就一直只填一个角色,然后一直不成功,服务器提示401未授权错误
第二步
在maven的settings.xml
里设置访问tomcat的账号密码
这个文件的位置也是在../maven/conf/settings.xml
,当然这是自己安装的maven目录下,如果是IDEA自带的maven3,可以设置在~/.m2/settings.xml
1 | <server> |
第三步
在项目的pom.xml
设置远程服务器的地址
1 | <build> |
这里的这个插件
tomcat7-maven-plugin
是Tomcat 8*也适用的地址必须是IP+
/manager/text
path里的是访问地址,也是项目在webapps里的位置
一些坑
项目的jdk和服务器的jdk版本要一样
除了这个之外,我们还需要注意如果你用的是Tomcat 8.5,我们还要再做一个配置
在conf/Catalina/localhost/manager.xml
里写入(如果没有就创建)
1 | <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> |
因为Tomcat 8.5之后对安全访问增强了,不仅仅需要配置管理帐号还需要配置允许远程访问管理员账户
修改后直接生效无须重启
在官方文档中提到:每个web应用应该有自己的安全管理文件(manager.xml)如果没有使用默认值 也就是不能远程访问,所以如果需要远程访问就需要创建manager.xml
来指定允许远程访问规则
后来应用到实际项目的时候,你会发现上传的大小受限制了,所以要改Nginx的配置
1 | server { |
如果你还使用了mybatis的自动生成工具org.mybatis.generator
,请一定要注释掉它
使用
可以用IDEA的右侧maven可视化插件按钮,点击tomcat7:redeploy
如果你安装过maven,也可以使用命令:mvn tomcat7:redeploy
这里不用deploy,因为据说会出错,所以就用redeploy好了