1. 程式人生 > >使用Maven將War包部署至遠端Tomcat伺服器

使用Maven將War包部署至遠端Tomcat伺服器

之前部署JavaWeb應用時,是將工程構建成WAR包,然後通過SSH或SFTP將WAR包上傳至測試伺服器。這樣做比較麻煩,而且每次需要登入到伺服器上。

今天看了幾篇文章,實踐了一下,使用Eclipse將專案直接打包上傳至遠端Tomcat,大大提高了工作效率。

1.進入Eclipse,配置Maven的settings.xml檔案。


如果目錄中沒有settings.xml檔案,則建立一個,放在指定路徑中。

<?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>
這個檔案中,兩個<server>節點,分別是遠端的和本地的伺服器,以及它們的Manager賬號密碼。
2.在工程的POM.XML中,加入:
<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>
其中,gotoserver是將來向遠端伺服器部署的Maven指令引數。
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檔案,內容為:
<?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>
4.在eclipse中,執行maven指令,即可將本地專案自動打WAR包並部署到遠端Tomcat伺服器上:
mvn tomcat7:redeploy -Pgotoserver

右鍵點選專案,選擇“maven build...”


填入maven指令,設定一個常用名稱:

以後每一次更新專案,直接在工具欄裡執行就好了,非常省事。


不過要先確保遠端tomcat是啟動著的。

本文參考了以下兩篇文章:

http://www.cnblogs.com/guogangj/p/5505228.html

http://www.cnblogs.com/xyb930826/p/5725340.html