12.5.2 部署至远程Web容器

除了让Cargo直接管理本地Web容器然后部署应用之外,也可以让Cargo部署应用至远程的正在运行的Web容器中。当然,前提是拥有该容器的相应管理员权限。相关配置如代码清单12-17所示。

代码清单12-17 部署应用至远程Web容器


<plugin>

<groupId>org.codehaus.cargo</groupId>

<artifactId>cargo-maven2-plugin</artifactId>

<version>1.0</version>

<configuration>

<container>

<containerId>tomcat6x</containerId>

<type>remote</type>

</container>

<configuration>

<type>runtime</type>

<properties>

<cargo.remote.username>admin</cargo.remote.username>

<cargo.remote.password>admin123</cargo.remote.password>

<cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url>

</properties>

</configuration>

</configuration>

</plugin>


对于远程部署的方式来说,container元素的type子元素的值必须为remote。如果不显式指定,Cargo会使用默认值installed,并寻找对应的容器安装目录或者安装包,对于远程部署方式来说,安装目录或者安装包是不需要的。上述代码中configuration的type子元素值为runtime,表示既不使用独立的容器配置,也不使用本地现有的容器配置,而是依赖于一个已运行的容器。properties元素用来声明一些容器热部署相关的配置。例如,这里的Tomcat 6就需要提供用户名、密码以及管理地址。需要注意的是,这部分配置元素对于所有容器来说不是一致的,读者需要查阅对应的Cargo文档。

有了上述配置后,就可以让Cargo部署应用了。运行命令如下:


$mvn cargo:redeploy


如果容器中已经部署了当前应用,Cargo会先将其卸载,然后再重新部署。

由于自动化部署本身就不是简单的事情,再加上Cargo要兼容各种不同类型的Web容器,因此cargo-maven2-plugin的相关配置会显得相对复杂,这个时候完善的文档就显得尤为重要。如果想进一步了解Cargo,可访问http://cargo.codehaus.org/Maven2+plugin。