Maven遠端Tomcat熱部署

swingpyzf發表於2017-03-30

好久沒來寫部落格了,工作和生活上的事情實在是太忙了,之前一直在搞jenkins ci 和 gitlab 的東西,一直都想寫一篇相關的文章記錄下,可是無論怎麼樣都抽不出時間去寫,斷斷續續的爛尾了好多文章。最近因一些情況從上一家單位離職了,看看能否抽空把這些爛尾的文章給補全了。


概要說明:

在使用Tomcat和Maven的時候可能會需要用到遠端部署專案的情況,比如我有個本地除錯完成的專案,想放到伺服器上提供測試,那麼可能會需要先將想打包成war包,然後上傳到伺服器上,然後通過重新啟動tomcat等操作來完成專案的部署。

那麼使用Maven遠端Tomcat熱部署外掛就能一步完成這些操作,匯入首先Tomcat要允許進行熱部署,也就是Tomcat的Manager,很多在長期操作Tomcat專案的開發人都沒有真正的接觸過Tomcat的Manager專案管理平臺,所以我們先從Tomcat的配置開始。


一、什麼是Tomcat Manager:

Tomcat Manager是Tomcat自帶的、用於對Tomcat自身以及部署在Tomcat上的應用進行管理的Web應用。
在預設情況下,Tomcat Manager是處於禁用狀態的。準確的說,Tomcat Mnager需要以使用者角色進行登入並授權才能使用相應的功能,不過Tomcat並沒有配置任何預設的使用者,因此需要我們進行相應的使用者配置之後才能使用Tomcat Manager。



二、配置Tomcat Manager使用者許可權

Tomcat Manager的配置檔案路徑在 tomcat目錄/conf/tomcat-users.xml 檔案中

預設情況下在<tomcat-users>標籤中的內容是被註釋掉的,從註釋內容我們可以看出來 在這裡配置使用者和許可權,並且註釋中也有明確的例子:

<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/><user username="both" password="tomcat" roles="tomcat,role1"/>

<user username="role1" password="tomcat" roles="role1"/>

—>


role 標籤表示許可權 rolename 表示許可權名稱。

user 標籤表示使用者 username屬性表示使用者名稱稱,password表示登入的密碼,role表示相對應的許可權。


這邊分別列出幾個tomcat-users中的4種許可權的介紹:

1、manager-gui:允許訪問HTML介面,也就是允許該使用者訪問manager的html頁面

2、manager-script:允許訪問純文字介面,也就是允許對tomcat進行指令碼操作(maven的外掛就需要用到這個許可權)

3、manager-imx:允許訪問JMX代理介面

4、manager-status:允許訪問Tomcat只讀狀態頁面


那麼進行一個簡單的配置,在<tomcat-users>標籤中加入以下內容,就可以訪問tomcat的manager頁面了,同時也能夠進一步的使用maven來進行遠端熱部署了。

<role rolename=“manager-gui"/>
<role rolename=“manager-script”/>
<user usernmae=“admin” password=“123456” roles=“manager-gui,manager-script”> 

(預設訪問連結為:localhost:8080/manager)


以下就是manager的介面,在這裡也可以通過頁面操作,對tomcat中的專案進行操作或者部署新的專案。這裡就不在一一敘述了。





三、配置Maven Tomcat外掛

Maven遠端部署需要通過一個外掛來實現:tomcat-maven-plugin

1、在專案中的pom.xml檔案中 加入:

<plugin>
<groupId>org.codehaus.mojo</groupId>

<artifactId>tomcat-maven-plugin</artifactId>

<configuration>

<url>http://120.26.128.240:8083/manager/text</url>

<server>tomcat</server>

<path>/</path>
<update>true</update>
</configuration>
<version>1.1</version>

</plugin> 


2、然後在maven的setting.xml配置檔案的<servers>標籤中 加入:

<server>
<id>tomcat</id>

<username>admin</username>

<password>123456</password>

</server> 


3、依次說明下這個外掛中所有<configuration>配置資訊標籤的意思:

1、url:表示你要遠端熱部署的tomcat訪問路徑

2、server表示你在本地maven的setting.xml的server的id

3、path則代表你的專案部署後的訪問路徑



四、最後使用Maven Tomcat的熱部署外掛部署專案

讓maven 執行(或者在命令中敲入)"tomcat:deploy" 則maven會啟用外掛去遠端部署剛剛配置好的專案

當專案上傳完成後則能夠成功進行訪問。


因為工作的原因寫部落格和教程的時間越來越少了,所以今後的部落格儘量簡短明瞭,以實踐使用為主,

同時也歡迎大家關注我的個人公眾號來提相關問題,我會力所能及的回答。





相關文章