Cargo本地/远程部署war包的Ant脚本编写方式

来源:互联网 发布:淘宝客如意投是什么 编辑:程序博客网 时间:2024/04/28 23:39

最近本人研究了cargo远程部署war包的方式,采用的是Ant脚本,选型的应用服务器则是Wildfly的CR1版本,废话不多说,来看一下build.xml文件的编写方式:

1)、本地部署

<?xml version="1.0"?>

<project name="cargo_ant_demo01" default="deploy" basedir=".">
 <property name="cargolib.dir" value="${basedir}\jar"/> 
 <property name="cargo-uberjar" value="${cargolib.dir}\cargo-core-uberjar-1.4.6.jar"/> 
 <property name="cargo-antjar" value="${cargolib.dir}\cargo-ant-1.4.6.jar"/>
 <property name="common-discovery" value="${cargolib.dir}\commons-discovery-0.4.jar"/>
 <property name="common-logging" value="${cargolib.dir}\commons-logging-1.1.1.jar"/>
 <property name="jboss.home" value="D:\server\wildfly\wildfly-8.0.0.CR1-cargo01"/>
 <property name="mywar" value="D:\Maven_Cargo\demo\nio_demo.war"/>
 
 <taskdef resource="cargo.tasks"> 
        <classpath> 
            <pathelement location="${cargo-uberjar}"/> 
            <pathelement location="${cargo-antjar}"/>
         
<pathelement location="${common-discovery}"/>
         <pathelement location="${common-logging}"/>
        </classpath> 
 </taskdef>
 
 <target name="cargostart">   
        <echo message="Starting Cargo..."/> 
        <echo message="Using jboss.home = ${jboss.home} "/> 
        <echo message="Using war = ${mywar}"/> 
        <echo message="Jars used = ${cargo-uberjar} , ${cargo-antjar}"/> 
         
        <cargo containerId="wildfly8x" home="${jboss.home}" action="run"> 
            <configuration> 
                <property name="cargo.servlet.port" value="8080"/>
                <property name="cargo.logging" value="high"/> 
                <deployable type="war" file="${mywar}"/> 
                <!--<deployable type="war" file="${war.ss}"/> -->                      
            </configuration> 
        </cargo> 
    </target> 
 
 <target name="deploy" depends="cargostart"/>
</project>

这里需要注意的也就是官网所说的两个必须的jar包(红色标出的)要添加到Ant的classpath里面,参考:http://cargo.codehaus.org/Ant+support ,后面两个commons的相关的包是本人在部署项目,执行ant命令(Ant下载:http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.9.3-bin.zip )的时候根据报出的ClassNotFound添加的。

 

2)、远程部署

<?xml version="1.0"?>

<project name="cargo_ant_demo01" default="deploy" basedir=".">
 <property name="cargolib.dir" value="${basedir}\jar"/> 
 <property name="cargo-uberjar" value="${cargolib.dir}\cargo-core-uberjar-1.4.6.jar"/> 
 <property name="cargo-antjar" value="${cargolib.dir}\cargo-ant-1.4.6.jar"/>
 <property name="common-discovery" value="${cargolib.dir}\commons-discovery-0.4.jar"/>
 <property name="common-logging" value="${cargolib.dir}\commons-logging-1.1.1.jar"/>
 <property name="jboss-cli" value="${cargolib.dir}\jboss-cli-client.jar"/>
 <property name="mywar" value="D:\Maven_Cargo\demo\cargodemo.war"/>
 
 <taskdef resource="cargo.tasks"> 
        <classpath> 
            <pathelement location="${cargo-uberjar}"/> 
            <pathelement location="${cargo-antjar}"/>
         <pathelement location="${common-discovery}"/>
         <pathelement location="${common-logging}"/>
         <pathelement location="${jboss-cli}"/>
        </classpath> 
 </taskdef>
 
 <target name="deploy"> 
        <echo message="Starting Cargo..."/> 
        <echo message="Using war = ${mywar}"/> 
        <echo message="Jars used = ${cargo-uberjar} , ${cargo-antjar}"/> 
         
        <cargo containerId="wildfly8x" action="deploy" type="remote"> 
            <configuration type="runtime"> 
             <property name="cargo.hostname" value="10.19.220.XX"/>
             <!--<property name="cargo.jboss.management-http.port" value="9990"/>-->
                <!--<property name="cargo.servlet.port" value="8080"/> -->
             <property name="cargo.remote.username" value="admin"/>
             <property name="cargo.remote.password" value="admin@163"/>
                <deployable type="war" file="${mywar}"/> 
                <!--<deployable type="war" file="${war.ss}"/> -->                      
            </configuration> 
        </cargo>
  <cargo containerId="wildfly8x" action="deploy" type="remote">
         <configuration type="runtime"> 
             <property name="cargo.hostname" value="192.168.88.128"/>
             <property name="cargo.remote.username" value="admin"/>
             <property name="cargo.remote.password" value="admin@163"/>
                <deployable type="war" file="${mywar}"/>                       
         </configuration>
  </cargo>
    </target>
 <target name="undeploy">
  <cargo containerId="wildfly8x" action="undeploy" type="remote"> 
            <configuration type="runtime"> 
             <property name="cargo.hostname" value="10.19.220.XX"/>
             <property name="cargo.remote.username" value="admin"/>
             <property name="cargo.remote.password" value="admin@163"/>
             <deployable type="war" file="${mywar}"/>
            </configuration> 
        </cargo>
  <cargo containerId="wildfly8x" action="undeploy" type="remote">
          <configuration type="runtime"> 
              <property name="cargo.hostname" value="192.168.88.128"/>
              <property name="cargo.remote.username" value="admin"/>
              <property name="cargo.remote.password" value="admin@163"/>  
           <deployable type="war" file="${mywar}"/>
          </configuration>
  </cargo>
 </target>
 
 <!--<target name="deploy" depends="cargostart"/>-->
</project>
这里需要注意的地方就是相关客户端连接容器的jar包要添加进来,否则会出现识别不了containerId的错误,如上红色标出的jar依赖。

当然在安装好Ant,配置好环境变量之后,我们通过dos可以进入到build.xml文件所在目录,执行ant+Target任务名的方式执行ant命令,默认读取build.xml文件,当然也可以通过ant的如下命令指定读取不同的xml文件:

ant -buildfile XX.xml deploy

上面就是读取某一个ant文件,执行里面target名为deploy的任务。

远程部署的应用服务器必须是启起来的,而且也要添加管理员的用户身份。

如下是我在Eclipse里面编写项目的结构:

0 0
原创粉丝点击