maven 使用 tomcat 插件 部署远程Linux服务器

2017-11-27 11:02:32来源:segmentfault作者:心无私天地宽人点击

分享
环境

服务器: Ubuntu 16.04(阿里云服务器)
jdk版本:1.8
相关的maven插件:


这个插件的目的在于部署时,跳过测试
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
tomcat 插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/myweb</path>
<port>80</port>
<uriEncoding>UTF-8</uriEncoding>
<url>http://XXXXX/manager/text</url><!-- 这边的/manager/text 是必须的,而前面是你的主机。例如 http://localhost/manager/text -->
<username>XXXX</username> <!-- 用于远程登录的账号,后边会再说到 -->
<password>XXXX</password> <!-- 用于远程登录的密码,后边会再说到-->
<update>true</update>
</configuration>
</plugin>

1、首先你需要在conf/tomcat-users.xml 下创建用于远程用户
例如


<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="XXXX" password="XXXX" roles="manager-gui,manager-script" />

username和password, 与上边 <username>XXXX</username> <password>XXXX</password>对应。


2、tomcat 默认只能由同一个物理机访问,所以,如果只配了上面的,那么还是无法远程部署,会报 401 错误。需要在conf/Catalina/localhost/ 下面创建manager.xml。指定允许远程物理机的访问规则。下面给出一个模板,manager.xml 会允许任何的物理机访问

<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

请注意到,<value/>节点的 allow 属性,这是一个正则表达式,用于匹配远程连接的IP。


如此就可以通过maven 来进行远程部署了



接下来,登录 http://xxxxx/manage 会弹出一个对话框,输入远程登录用户和密码即可


参考资料:
https://stackoverflow.com/que...
https://stackoverflow.com/que...

微信扫一扫

第七城市微信公众平台