`
Kenny.Lee
  • 浏览: 514929 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】ANT构建项目时添加版本号

 
阅读更多

一直用ANT进行项目构建,但在实际应用中,老是为SVN的版本号所困惑。因为当一个应用部署久了出现问题的时候,是否知道构建应用时的SVN版本号会影响DEBUG或更新工作。

 

老的办法我是在ANT脚本上添加一个需要手动输入的SVN版本号标识,然后把这个信息加在构建的包中。

 

这个解决方案的坏处显而易见,就是每次需要手动添加了。今天发现一个比较好的解决方案,可以实现自动添加了,看来ANT还是需要多多学习才行。

 

以下是转载内容

 

 

--------------------------------------

 

我们使用svn和ant,所以就在代码的build脚本中加入了一个target把svn code version生成到一个html文件里面, 并让这个target在每次build的时候都自动执行,这样每次build就把当前的svn版本号生成为html文件并且部署到服务器上,并直接通过url来查看当前环境的代码版本

具体的ant脚本如下

    <target name="generateCodeVersion">
        <exec executable="svn" output="${webroot}/version.html" failonerror="false" failifexecutionfails="false">
            <arg line="info"/>               
        </exec>
    </target>

这个target会在${webroot}下生成一个version.html文件,里面的内容格式如下:

Path: .
URL: http://88.8.888.88/lods/dev_2.0.0
Repository Root: http://10.3.100.78/code
Repository UUID: 465e05aa-64dd-4f22-9bd7-d30a52464735
Revision: 13308
Node Kind: directory
Schedule: normal
Last Changed Author: rainman
Last Changed Rev: 132887
Last Changed Date: 2009-01-26 12:49:03 -0700 (Mon, 26 Jan 2009)

如果你不想暴露你的repository和svn代码库的url, 可以修改ant脚本如下:

    <target name="generateCodeVersion">
        <exec executable="svn" output="${webroot}/version.html" failonerror="false" failifexecutionfails="false">
            <arg line="info"/>    
            <redirector>
                <outputfilterchain>
                    <linecontainsregexp>
                        <regexp pattern="^Revision:"/>
                    </linecontainsregexp>
                    <tokenfilter>
                        <replaceregex pattern="Revision\:\s*" flags="s" replace=""/>
                    </tokenfilter>
                </outputfilterchain>
            </redirector>
        </exec>
    </target>

这样就会只保留Revision号,而不包括其他信息,html里面的内容也就只有13308这个数字了

同样的方法也可以得到svn的tag号,比如1.0,2.0等等

 

转自: http://hi.baidu.com/cnbxj/item/8f06357a2350be366dc37c0f

 

-------------------------

道理比较简单,就是ANT调用外部SVN的命令,然后把svn info返回的信息加到项目内。不过执行的前提条件是,必须把SVN命令在放在环境变量内了。

分享到:
评论

相关推荐

    ANT项目构建

    #### 三、Ant构建文件详解 **构建文件**:构建文件是Ant的核心,它是一个XML文件,通常命名为 `build.xml`。这个文件定义了项目的构建逻辑,包括构建的不同阶段、依赖关系以及具体的操作指令。 - **基于XML的结构*...

    ant获取SVN版本信息的jar包xmltask以及安装,使用方法

    在IT行业中,构建自动化工具是项目管理的重要环节,Apache Ant是一个广泛应用的Java构建工具,它允许开发者通过XML配置文件来定义构建任务。本主题聚焦于如何利用Ant与XMLTask jar包来获取SVN(Subversion)版本信息...

    【构建工具Ant环境搭建】

    Ant的发行包通常是一个名为`apache-ant-x.x.x-bin.zip`的压缩文件,其中x.x.x表示版本号。下载后将其解压到你选择的目录,例如`C:\Ant`。 **配置环境变量** 为了让系统能够找到Ant,我们需要设置两个环境变量: 1....

    apache官方ant-1.10.11版本压缩包

    标题中的"apache官方ant-1.10.11版本压缩包"表明这是Apache Ant的官方发行版,版本号为1.10.11。这意味着它经过了Apache社区的严格测试和审查,可以放心用于各种项目构建需求。 描述中的"全名:apache-ant-1.10.11-...

    ANT构建解决方案-应用指南

    ### ANT构建解决方案应用指南 #### 一、Ant概述与安装配置 **Ant**(Another Neat Tool)是一款由Apache组织提供的开源项目构建工具,适用于Java应用程序的自动化构建过程。其最大的特点是跨平台性,能够在Windows...

    ant 管理整个项目的编译和运行

    在命令行窗口输入`ant -version`命令,如果能看到版本号输出,则表示安装成功。 #### 使用Ant工具 1. **基本命令** Ant提供了一系列命令来帮助用户控制构建过程,例如: - `-buildfile &lt;生成文件&gt;`: 指定构建...

    ant-apache-regexp-1.6.2.jar.zip

    开发者可以通过在Ant构建脚本中添加相应的classpath引用,使项目能够使用这个库提供的功能。 在下载`ant-apache-regexp-1.6.2.jar.zip`压缩包后,您会发现其中包含了两个文件:`ant-apache-regexp-1.6.2.jar`和`ant...

    ant-1.6.5.zip

    4. **属性(Properties)**:Ant支持定义和使用属性,如版本号、源代码路径等。属性可以在整个构建文件中复用,简化配置。 5. **依赖管理(Dependency Management)**:Ant允许指定任务间的依赖关系,确保构建顺序...

    ant-launcher-1.7.jar.zip

    而"ant-launcher-1.7.jar.zip"文件则是Apache Ant的一个关键组件——Ant Launcher的1.7版本的归档文件,它主要用于启动Ant构建过程。本文将深入探讨Ant Launcher的功能、作用以及如何在项目中正确使用。 首先,Ant ...

    ant in action 2相关书籍

    4. **属性(Properties)**:在Ant中,可以设置属性来存储可变的信息,如版本号、路径等。属性可以通过`&lt;property&gt;`元素定义,并可以在整个构建文件中引用。 5. **条件(Conditions)**:Ant提供了一组条件任务,如...

    Ant使用指南.rar

    2. **Ant构建文件** - Ant使用XML格式的构建文件(build.xml)来定义构建过程。该文件包含项目的目标、任务、属性和依赖关系。 - 构建文件中的主要元素有project、target、task等,它们分别代表项目、目标和任务。...

    apache-ant-1.9.6安装包

    - 使用属性(`&lt;property&gt;`)来管理可配置的值,如编译目录或版本号。 - 利用条件语句(`&lt;if&gt;`、`&lt;unless&gt;`)和循环(`&lt;foreach&gt;`)进行更复杂的逻辑控制。 总的来说,Apache Ant 1.9.6是一个强大的构建工具,能够...

    Android项目的Ant配置

    在这个例子中,`android.sdk.path`指定了Android SDK的安装路径,`project.name`定义了应用的名字,`app.version`是应用的版本号,而`app.debuggable`表示应用是否开启调试模式。这些属性可以在`build.xml`中被引用...

    ant部署示例代码

    1. **project**:这是Ant构建文件的根元素,它定义了项目的属性,如版本号、默认目标等。 2. **target**:每个目标代表一个具体的构建任务,如`compile`(编译)、`test`(测试)和`dist`(打包)。这些目标可以相互...

    ant批量打包脚本

    这种脚本通常会根据不同的配置参数(如渠道标识、版本号等)生成不同市场的APK或JAR文件。 在描述中提到的情况,当应用程序需要发布到多个市场,每个市场可能需要不同的配置(如广告ID、统计代码、应用内购买设置等...

    ant-googlecode-0.0.3.jar.zip

    总的来说,"ant-googlecode-0.0.3.jar.zip"是一个包含Google Code服务支持的Apache Ant插件的压缩包,用户可以将其添加到Ant构建脚本中,以便与Google Code进行交互,如上传和下载项目。`ant.license.txt`文件则提供...

    ant工具下载和安装说明

    3. 下载文件:点击你选择的版本,将下载一个名为`apache-ant-x.y.z-bin.zip`(x.y.z代表版本号)的压缩文件。确保保存到你电脑上的一个方便的位置。 **二、Ant的安装** 1. 解压文件:下载完成后,你需要解压下载的...

    ant自动打包编译android custom_rules和ant.properties文件

    例如,你可以定义版本号、编译时的SDK版本、NDK路径等。以下是一个简单的`ant.properties`文件示例: ```properties # 定义SDK和NDK的路径 sdk.dir=/path/to/your/sdk ndk.dir=/path/to/your/ndk # 应用的版本信息...

    ant-launcher-1.6.5.jar.zip

    标题中的"ant-launcher-1.6.5.jar.zip"是一个包含特定版本的Apache Ant启动器的压缩文件,其中"1.6.5"代表该版本号。这个压缩包是为开发者提供的,便于他们下载和使用Apache Ant工具的特定组件。 Apache Ant是一个...

Global site tag (gtag.js) - Google Analytics