主题:在ant中使用cvs功能自动完成每日构建

本文介绍了一种使用Ant进行自动化构建和部署的方法。通过配置build.xml文件,实现了从CVS中检出模块、编译、打包成jar并提交回CVS服务器的功能。此流程包括初始化、检出模块、构建模块等步骤。
实现的主要功能是:自动从cvs中check out模块,然后编译,把编译后的class打成jar,再commit到cvs服务器的指定位置。

build.xml 

<?xml version="1.0"?>
<project name="gnt Auto build" basedir="." default="build">

    <!-- The CVSROOT value -->
    <property name="cvsroot" value=":pserver:dhf:@192.168.0.200:D:/cvs_repository_z"/>
    <property name="cvs.password" value=""/>
  
    <property name="ywzcpt.dir" value="${basedir}/ywzcpt"/>
    <property name="ywzcpt.module.name" value="ywzcpt"/>
    
    <property name="zfyw.dir" value="${basedir}/zfyw"/>
    <property name="zfyw.module.name" value="zfyw"/>

    <property name="external.dir" value="${basedir}/external"/>
    <property name="external.module.name" value="external"/>
    
    <property name="cvs-op" value="co " />
    <!-- Initializing -->
    <target name="init">
        <tstamp>
            <format property="today" pattern="yyyy-MM-dd hh:mm:ss"/>
        </tstamp>
        <echo message="${today}" />
    </target>
    
    <target name="prepare" depends="init" >
        <cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="ant-cvs.cvspass"/>
    </target>
    
    <target name="external-check-out" depends="prepare">
        <cvs cvsRoot="${cvsroot}" package="${external.module.name}" 
             passfile="ant-cvs.cvspass"/>
    </target>
    
    <!-- Retrieve the ywzcpt module -->
    <target name="ywzcpt-check-out" depends="external-check-out">
        <delete dir="${ywzcpt.module.name}"/> 
        <cvs cvsRoot="${cvsroot}" package="${ywzcpt.module.name}" 
             passfile="ant-cvs.cvspass"/>
    </target>

    <target name="zfyw-check-out" depends="external-check-out">
        <delete dir="${zfyw.module.name}"/> 
        <cvs cvsRoot="${cvsroot}" package="${zfyw.module.name}" 
             passfile="ant-cvs.cvspass"/>
    </target>

    <!-- cvs checkout -->
    
    <target name="check-out">
        <antcall target="external-check-out" />
        <antcall target="ywzcpt-check-out" />
        <antcall target="zfyw-check-out" />
    </target>
    
    <!-- build XSP framework -->
    <target name="build">
        <echo message="+=============================================+" />
        <echo message="|     Start Building GNT for compilation      |" />
        <echo message="+=============================================+" />
        
        <antcall target="ywzcpt-build" />
        
        
        <echo message="+=============================================+" />
        <echo message="|      End Building GNT for compilation       |" />
        <echo message="+=============================================+" />
        
    </target>
    
    <target name="ywzcpt-build" depends="ywzcpt-check-out">
        <echo message="+---------------------------------------------+" />
        <echo message="|    Start Building ywzcpt for compilation    |" />
        <echo message="+---------------------------------------------+" />

        <ant antfile="build.xml" dir="${ywzcpt.module.name}" output="ywzcpt.log" />

        <property name="ywzcpt.add" value="add ./build/log/*.log ./build/*.jar ./build/*.war"/>
        <property name="ywzcpt.commit" value="commit -m '${today}' ./build/log/*.log ./build/*.jar 

./build/*.war"/>
        
        <ant antfile="build.xml" dir="${ywzcpt.module.name}" target="commit-build" />
        
        <echo message="+---------------------------------------------+" />
        <echo message="+     End Building ywzcpt for compilation     |" />
        <echo message="+---------------------------------------------+" />
    </target>
    
    <target name="zfyw-build" depends="zfyw-check-out, ywzcpt-build">
        <echo message="+---------------------------------------------+" />
        <echo message="|    Start Building ywzcpt for compilation    |" />
        <echo message="+---------------------------------------------+" />

        <ant antfile="build.xml" dir="${zfyw.module.name}" output="zfyw.log" />

        <property name="zfyw.add" value="add ./build/log/*.log ./build/*.jar ./build/*.war"/>
        <property name="zfyw.commit" value="commit -m '${today}' ./build/log/*.log ./build/*.jar 

./build/*.war"/>
        
        <ant antfile="build.xml" dir="${zfyw.module.name}" target="commit-build" />
        
        <echo message="+---------------------------------------------+" />
        <echo message="+     End Building ywzcpt for compilation     |" />
        <echo message="+---------------------------------------------+" />
    </target>

    <target name="clean" >
        <delete dir="${ywzcpt.module.name}"/> 
    </target>
  
</project>

ywzcpt/build.xml片断:

    主要实现commit功能
    <target name="commit-build">
        <cvs cvsRoot="${cvsroot}" passfile="${root.dir}/ant-cvs.cvspass"
             command="${ywzcpt.add}"/>
        <cvs cvsRoot="${cvsroot}" passfile="${root.dir}/ant-cvs.cvspass"
             command="${ywzcpt.commit}"/>
    </target>

最后,在win2k中制定一个计划任务,就可以了。
源码来自:https://pan.quark.cn/s/41b9d28f0d6d 在信息技术领域中,jQuery作为一个广受欢迎的JavaScript框架,显著简化了诸多操作,包括对HTML文档的遍历、事件的管理、动画的设计以及Ajax通信等。 本篇文档将深入阐释如何运用jQuery达成一个图片自动播放的功能,这种效果常用于网站的轮播展示或幻灯片演示,有助于优化用户与页面的互动,使网页呈现更加动态的视觉体验。 为了有效实施这一功能,首先需掌握jQuery的核心操作。 通过$符号作为接口,jQuery能够迅速选取DOM组件,例如$("#id")用于选取具有特定ID的元素,而$(".class")则能选取所有应用了某类class的元素。 在选定元素之后,可以执行多种行为,诸如事件监听、样式的变更、内容的更新以及动画的制作等。 关于“一个基于jQuery的图片自动播放功能”,首要任务是准备一组图片素材,这些素材将被整合至一个容器元素之中。 例如,可以构建一个div元素,将其宽度设定为单张图片的尺寸,再借助CSS实现溢出内容的隐藏,从而构建出水平滚动的初始框架。 ```html<div id="slider"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <!-- 更多图片内容... --></div>```接着,需要编写jQuery脚本以实现图片的自动切换。 这通常涉及到定时器的运用,以设定周期性间隔自动更换当前显示的图片。 通过使用`.fadeOut()`和`.fadeIn()`方法,能够实现图片间的平滑过渡,增强视觉效果。 ```javascript$(document).re...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值