使用阿里雲服務器的都有意識到,當我們向服務器(例如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即可。
這個是我遇到的問題,如果各位有遇到各種問題,歡迎發出來,一起處理一下!!!!