1

环境

服务器: 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 来进行远程部署了

clipboard.png

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

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


心无私天地宽
513 声望22 粉丝