使用Maven將War包部署至遠端Tomcat伺服器
阿新 • • 發佈:2019-02-15
之前部署JavaWeb應用時,是將工程構建成WAR包,然後通過SSH或SFTP將WAR包上傳至測試伺服器。這樣做比較麻煩,而且每次需要登入到伺服器上。
今天看了幾篇文章,實踐了一下,使用Eclipse將專案直接打包上傳至遠端Tomcat,大大提高了工作效率。
1.進入Eclipse,配置Maven的settings.xml檔案。
如果目錄中沒有settings.xml檔案,則建立一個,放在指定路徑中。
這個檔案中,兩個<server>節點,分別是遠端的和本地的伺服器,以及它們的Manager賬號密碼。<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> <server> <id>UbuntuServer</id> <username>admin</username> <password>123456</password> </server> <server> <id>LocalServer</id> <username>admin</username> <password>123456</password> </server> </servers> <mirrors> </mirrors> <profiles> </profiles> </settings>
2.在工程的POM.XML中,加入:
其中,gotoserver是將來向遠端伺服器部署的Maven指令引數。<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <warPackageName>demo</warPackageName> <tomcat.deploy.server>LocalServer</tomcat.deploy.server> <tomcat.deploy.serverUrl>http://localhost:8080/manager/text</tomcat.deploy.serverUrl> </properties> <profiles> <profile> <id>gotoserver</id> <properties> <tomcat.deploy.server>UbuntuServer</tomcat.deploy.server> <tomcat.deploy.serverUrl>http://192.168.1.108:8080/manager/text</tomcat.deploy.serverUrl> </properties> </profile> </profiles> <build> <finalName>${warPackageName}</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <server>${tomcat.deploy.server}</server> <url>${tomcat.deploy.serverUrl}</url> <path>/${warPackageName}</path> </configuration> </plugin> </plugins> </build>
3.設定遠端Tomcat的使用者及訪問許可權
在遠端Tomcat的conf/tomcat-users.xml中,加入:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="123456" roles="manager-script,manager-gui"/>
在conf/Catalina/localhost/目錄下建立一個manager.xml檔案,內容為:
4.在eclipse中,執行maven指令,即可將本地專案自動打WAR包並部署到遠端Tomcat伺服器上:<?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
mvn tomcat7:redeploy -Pgotoserver
右鍵點選專案,選擇“maven build...”
填入maven指令,設定一個常用名稱:
以後每一次更新專案,直接在工具欄裡執行就好了,非常省事。
不過要先確保遠端tomcat是啟動著的。
本文參考了以下兩篇文章:
http://www.cnblogs.com/guogangj/p/5505228.html
http://www.cnblogs.com/xyb930826/p/5725340.html