讀古今文學網 > Maven實戰 > 12.5.1 部署至本地Web容器 >

12.5.1 部署至本地Web容器

Cargo支持兩種本地部署的方式,分別為standalone模式和existing模式。在standalone模式中,Cargo會從Web容器的安裝目錄複製一份配置到用戶指定的目錄,然後在此基礎上部署應用,每次重新構建的時候,這個目錄都會被清空,所有配置被重新生成。而在existing模式中,用戶需要指定現有的Web容器配置目錄,然後Cargo會直接使用這些配置並將應用部署到其對應的位置。代碼清單12-14展示了standalone模式的配置樣例。

代碼清單12-14 使用standalone模式部署應用至本地Web容器

cargo-maven2-plugin的groupId是org.codehaus.cargo,這不屬於官方的兩個Maven插件groupId,因此用戶需要將其添加到settings.xml的pluginGroup元素中以方便命令行調用。

上述cargo-maven2-plugin的具體配置包括了container和configuration兩個元素,configuration的子元素type表示部署的模式(這裡是standalone)。與之對應的,configuration的home子元素表示複製容器配置到什麼位置,這裡的值為${project.build.directory}/tomcat6x,表示構建輸出目錄,即target/下的tomcat6x子目錄。container元素下的containerId表示容器的類型,home元素表示容器的安裝目錄。基於該配置,Cargo會從D:\cmd\apache-tomcat-6.0.29目錄下複製配置到當前項目的target/tomcat6x/目錄下。

現在,要讓Cargo啟動Tomcat並部署應用,只需要運行:

以account-web為例,現在就可以直接訪問地址的賬戶註冊頁面[1]了。

默認情況下,Cargo會讓Web容器監聽8080端口。可以通過修改Cargo的cargo.servlet.port屬性來改變這一配置,如代碼清單12-15所示。

代碼清單12-15 更改Cargo的Servlet監聽端口

要將應用直接部署到現有的Web容器下,需要配置Cargo使用existing模式,如代碼清單12-16所示。

代碼清單12-16 使用existing模式部署應用至本地Web容器

上述代碼中configuration元素的type子元素的值為existing,而對應的home子元素表示現有的Web容器目錄,基於該配置運行mvn cargo:start之後,便能夠在Tomcat的webapps子目錄看到被部署的Maven項目。

[1] 地址為http:localhost:8080/account-web-1.0.0-SNAPSHOT/signup.jsp。