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

最近本人研究了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=">
                <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="
>
                <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="
>
             <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="
>  
           <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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值