在版本控制中检查最新版本



我目前正在编写一个 ANT 脚本,其中包含一些智能来检查事物。我正在使用True Blue Software的SnapshotCM作为我的版本控制,并使用CruiseControl作为我的夜间构建框架。基本上,我需要始终检查在我的版本控制中找到的最新版本并执行命令。在本例中,下面是一个示例:

<project name="nightly_build" default="main" basedir="checkout">
    <target name="init">
        <property file="initial.properties"/>
    </target>
    <target name="main" depends="init">
            <!-- need some code to set variable -->
            <!-- need some code to increment variable -->
        <!-- need some code here to check for the latest version -->
        <exec executable="C:/Program Files/True Blue Software/SnapshotCM/wco.exe">
            <arg line='-f -R "C:/Work/7.10.000_Tip/7.10.000_Tip_GUI_TEST/"'/>
        </exec>
    </target>
</project>

在上面的代码中,我将加载"initial.properties"文件。算法应如下所示:

  1. 加载初始属性文件

  2. 获取build_number

  3. 将build_number递增 1(让这个新变量为 X)

  4. 如果找到 X,则 X 乘以 1(如果未找到,则跳到 6。

  5. 如果找到 X,则重复 4(直到找不到 X)

  6. 否则使用<arg line ='-f -R "C:/..../7.10.100.X..../"'/>内部的版本号

初始属性文件如下所示:

Major_Version=7
Minor_Version=10
Project_Number=100
Build_Number=036
Product_Version=${Major_Version}.${Minor_Version}.${Project_Number}.${Build_Number}

谁能指导我?

Ant 不是一种编程语言。它是一种依赖矩阵语言。

这意味着您无需在 Ant 中指定执行顺序,Ant 将计算运行目标所需的顺序。这也意味着 Ant 无法执行循环,甚至在设置属性后更改属性的值。

有一些软件包建立在 Ant 之上。旧的备用是Antcontrib。Antcontrib具有变量的概念,这些变量类似于可变属性。它还具有各种循环结构。但是,我不确定<foreach><for>任务是否会满足您的需求......

按顺序搜索下一个内部版本号是您可以在 shell 脚本中执行的操作。事实上,我强烈推荐这个。

我只将 Ant 用于构建,并将我的 CM 函数保留在我的构建.xml文件之外。相反,我依靠我的构建系统来完成与构建本身无关的所有事情。这包括签出代码、保存工件和编译单元测试。这样,如果我更改使用连续生成系统或版本控制系统的方式,则不必修改build.xml文件。

相关内容

  • 没有找到相关文章

最新更新