`
Kenny.Lee
  • 浏览: 511119 次
  • 性别: 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命令在放在环境变量内了。

分享到:
评论

相关推荐

    Maven权威指南 很精典的学习教程,比ANT更好用

    版本构建号 9.3.1.2. SNAPSHOT版本 9.3.1.3. LATEST 和 RELEASE 版本 9.3.2. 属性引用 9.4. 项目依赖 9.4.1. 依赖范围 9.4.2. 可选依赖 9.4.3. 依赖版本界限 9.4.4. 传递性依赖 9.4.4.1. 传递性依赖和...

    fields-ant:用于Ant Design的表单和CRUD组件构建器

    田蚁 用于在构建Forms和标准CRUD组件的标准库/接口。 开源,主要由开发。简介/概念软件中最常见的模式是CRUD:创建,读取,更新和删除数据。 诸如“添加用于编辑电话号码的表单”之类的极其常见的任务需要诸如Ant ...

    Java项目开发与毕业设计指导

    所有的库文件和平台都被打包成一个jar(Java Archive)文件,文件名称表明文件的版本号。比如本章采用的是Aglet的2.0.2版本,那么它的jar文件名称就是aglets-2.0.2.jar(ch12文件夹下有改归档文件)。下面详细说明了...

    maven window下安装包

    第11章:用Maven管理项目版本/11.2 版本号格式约定 第11章:用Maven管理项目版本/11.3 版本状态/11.3.1 主干、分支、标签 第11章:用Maven管理项目版本/11.3 版本状态/11.3.2 状态图 第11章:用Maven管理项目版本/...

    tcsaroundtheworld:世界各地的TCS

    ## TCS环游世界 一个用于与Treacher Collins综合征患者共享位置的网站。 ##设计与技术 托管在,它利用了: 管理员权限 数据存储 影像服务 作业时间表(计划) ... 在以下位置更新版本号: war/WEB-INF/a

    springboot参考指南

    构建ApplicationContext层次结构(添加父或根上下文 iv. 62.4. 创建一个非web(non-web)应用 ii. 63. 属性&配置 i. 63.1. 外部化SpringApplication配置 ii. 63.2. 改变应用程序外部配置文件的位置 iii. 63.3. 使用...

    IESA153A-Catch-em-all

    阻止打开模拟器时出错 =&gt; 删除并重新添加所有插件 由于函数返回错误,联系人插件没有显示与数据库匹配的联系人。 无法构建 =&gt; 删除平台、ios.json 和 android.json 文件夹,并重新创建平台 存储问题 =&gt; 在数据库中 ...

    Eclipse权威开发指南2.pdf

    5.3.7 在分支和合并时对于修订版本号发生了什么..... 136 5.3.8 使用CVS管理二进制文件..... 136 5.4 Eclipse中的CVS用户界面...... 136 5.4.1 CVS Repository Exploring透视图:资源库主页..... 137 5.4.2 CVS ...

    Eclipse权威开发指南3.pdf

    5.3.7 在分支和合并时对于修订版本号发生了什么..... 136 5.3.8 使用CVS管理二进制文件..... 136 5.4 Eclipse中的CVS用户界面...... 136 5.4.1 CVS Repository Exploring透视图:资源库主页..... 137 ...

    Eclipse权威开发指南1.pdf

    5.3.7 在分支和合并时对于修订版本号发生了什么..... 136 5.3.8 使用CVS管理二进制文件..... 136 5.4 Eclipse中的CVS用户界面...... 136 5.4.1 CVS Repository Exploring透视图:资源库主页..... 137 ...

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

Global site tag (gtag.js) - Google Analytics