在项目开发过程中,经常会因为一点小的修修补补需要修改代码,重新打包部署。由于做的是政务项目,项目部署都在电子政务网,还要链接vpn堡垒机一系列动作,整个过程看似简单实则繁琐。每天打包部署是件令人不愉悦的事,那么有什么好的方式可以简化这些操作?在研究tomcat过程中,发现简化这些其实非常简单,按照下面步骤操作后,只需要修改完代码,点击部署即可!
配置线上tomcat
线上环境为tomcat9不同版本略有差异
在安装完tomcat之后,webapp目录下保留manager文件夹。
1.允许管理页面远程访问
用vim 打开webapps/manager/META-INF/中的context.xml
命令:vim webapps/manager/META-INF/context.xml
原内容
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
修改为
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
说明: 因为tomcat9默认只能本机访问管理界面, 修改后就可以远程访问了
添加用户和权限
在tomcat的 conf/tomcat-users.xml 文件中面配置
vim conf/tomcat-users.xml 在标签 tomcat-users 里加上
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
说明:username password 修改为自己的用户密码
默认主机配置
在tomcat的 conf/Catalina/localhost/ 目录下添加配置文件 manager.xml,内容如下
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
配置完以上操作重启tomcat,然后远程访问 http://localhost:8080/manager/html 可以看到一下界面
本地配置
配置本地项目
maven配置
在本地maven的conf/setting.xml文件中的servers标签里添加:
``
<server>
<id>tomcat9</id>
<username>tomcat</username>
<password>tomcat</password>
</server>
说明:这里的账号密码就是上面tomcat里面配置的账号密码,id是标识。
idea中配置tomcat插件
在项目的pom.xml文件中添加:
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 直接访问 Tomcat 服务器的 manager -->
<url>http://localhost:8080/manager/text</url>
<server>tomcat9</server>
<username>tomcat</username>
<password>tomcat</password>
<update>true</update>
<!--访问的项目名,表示无需项目名。列如:/app-->
<path>/</path>
</configuration>
</plugin>
</plugins>
说明:server 对应上面maven配置文件里的id标识,username,password 也需对应,path 为项目的访问路径,如果配置 "/app" 则访问路径为http://localhost:8080/app
远程部署
配置完成后,刷新maven插件,点击部署等待控制台完成即可。到此远程自动化部署配置完毕,后面只需要修改代码之后点击redeploy 或者redeploy-only