maven 使用 tomcat 插件 部署遠程Linux服務器

環境

服務器: Ubuntu 16.04(阿里雲服務器)
jdk版本:1.8
相關的maven插件:web

這個插件的目的在於部署時,跳過測試
<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>

一、首先你須要在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>對應。apache

二、tomcat 默認只能由同一個物理機訪問,因此,若是隻配了上面的,那麼仍是沒法遠程部署,會報 401 錯誤。須要在conf/Catalina/localhost/ 下面建立manager.xml。指定容許遠程物理機的訪問規則。下面給出一個模板,manager.xml 會容許任何的物理機訪問tomcat

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

請注意到,<value/>節點的 allow 屬性,這是一個正則表達式,用於匹配遠程鏈接的IP。服務器

如此就能夠經過maven 來進行遠程部署了app

clipboard.png

接下來,登陸 http://xxxxx/manage 會彈出一個對話框,輸入遠程登陸用戶和密碼便可webapp

參考資料:
https://stackoverflow.com/que...
https://stackoverflow.com/que...maven

相關文章
相關標籤/搜索