Maven熱部署-不停止服務器情況下完成部署


使用阿里雲服務器的都有意識到,當我們向服務器(例如tomcat)發布項目的時候,都要事先停止服務器(./shutdown.sh),然后將自己的web項目打包成war,上傳到服務器的webapps目錄下,然后重新啟動tomcat(./startup.sh),后面會發現,並不能立即訪問到項目,需要等待大概6分鍾后才能訪問得到,通過(tail -f catalina.out)命令可以查看到tomcat服務器一直處於正在啟動中,但並未啟動成功。這等耗時------黃花菜都涼了;

下面介紹一種通過maven工具實現不停用服務器部署項目:

工具使用:eclipse,集成在eclipse中的maven插件,阿里雲的tomcat服務器;

目標:使用eclipse中的maven插件將web項目部署到遠程的tomcat服務器下;

一、首先你應該登錄自己的遠程服務器,可以使用putty等,然后定位到tomcat下的conf目錄,如下圖;

通過vim命令(vim tomcat-users.xml)打開,並在下圖中的位置添加如下代碼:記得修改的username,password的值,后面有用到;最后保存(:wq)退出;

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

 因為修改tomcat中conf文件內容,所以此處需要重啟tomcat(./shutdown.sh后./startup.sh),並測試訪問自己服務器,例如下圖:

出現上面結果說明第一步配置成功;

二、在eclipse中,對自己maven項目中的pom.xml進行配置,加上下面的代碼:意思是添加tomcat7插件;

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.tomcat.maven</groupId>
			<artifactId>tomcat7-maven-plugin</artifactId>
			<version>2.2</version>
			<configuration>
				<url>http://自己遠程ip地址/manager/text</url>
		            <path>/</path><!--這樣配置會覆蓋webapps下的root目錄,導致的結果就是訪問項目的時候只需要ip+端口號,不用項目名-->
                    <port>443</port><!--根據自己tomcat目錄中的server.xml中的配置訪問端口進行配置,默認是8080,自己修改過的話可能是80,如果做過安全證書,可能是443--> <server>tomcat</server> <username>admin</username><!--剛才第一步中自己設置的username,和password--> <password>123456</password> </configuration> </plugin> </plugins> </build>

三、到目前為止就算配置完成了,接下就是將項目發布到遠程服務器了,如下圖

接下來,需要填寫命令,大致有以下幾種狀況:

首次發布:clean tomcat7:deploy

跳過測試發布:在后面加 -Dmaven.test.skip=true

覆蓋發布,再次發布:clean tomcat7:redeploy

清除發布項目:clean tomcat7:undeploy

最后,點擊run,就開始檢查和發布項目了,如果結果看到如下圖,恭喜你,發布成功了,到自己遠程服務器的webapps下看是否存在發布的項目吧

可能會遇到的坑如下:

1、這個是因為在webapps下已經存在了這個項目。無法執行覆蓋更新命令,需要執行redeploy命令才可以覆蓋更新。或者執行undeploy先卸載存在的項目,然后再執行deploy即可。

這個是我遇到的問題,如果各位有遇到各種問題,歡迎發出來,一起處理一下!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM