欢迎加入软件配置管理(CN) Google讨论组
发新话题
打印

ant中如何能有选择地执行构建?

本主题由 admin 于 2010-8-18 08:55 提升

ant中如何能有选择地执行构建?

大家好~

      一直有一个问题在困扰着。本人用ant构建,里面的task脚本都是固定的,so,肯定每次各个task都会执行一遍。那么,有没有办法实现按需要地选择执行某几个task? 这样带来的结果是不必花费更多的时间编译没必要的程序,效率应该会提高..... 应该不用每次构建前都修改那个build.xml文件吧....

如:build.xml里已经写好编译A、B、C、D..........N个程序的语句,但平时可能有时编译的程序都不一样,不用全部都编译(当然,每次全部都编译一遍也不会产生其他问题,但没必要),有什么办法实现么?

坐等指点...

TOP

复制内容到剪贴板
代码:
<project name="project" default="all">
        <target name="a" description="BUILD A" >
                <echo>  BUILD A </echo>
        </target>
        <target name="b" description="BUILD B" >
                <echo>  BUILD B </echo>
        </target>
        <target name="c" description="BUILD C" >
                <echo>  BUILD C </echo>
        </target>
       
        <target name="com_1" description="component 1" depends="A,B">
                <echo>  BUILD component 1 </echo>
        </target>
        <target name="com_2" description="component 2" depends="A,C">
                <echo>  BUILD component 2 </echo>
        </target>
        <target name="all" description="BUILD ALL" depends="A,B,C">
                <echo>  BUILD ALL </echo>
        </target>
</project>
只编译component1的话执行 ant com_1
只编译component2的话执行 ant com_2
全编译的话执行 ant 或者 ant all
软件配置管理(CN) Google讨论组.如果想和大家交流,请发送email到
ConfigMgmt-CN@googlegroups.com
更多的信息,请浏览讨论组主页
http://groups.google.com/group/ConfigMgmt-CN?hl=zh-CN

TOP

回复 2# scmroad 的帖子

前段时间研究ant <if><elseif>的时候好像看到了这样的解决办法, 但当时没记.
通过depend来控制也不失为一个方法, 但是这样的话在执行的时候还需要手工来控制.感觉不happy

TOP

回复 3# xiaoxiang7788 的帖子

期待 xiaoxiang 给我们指条明路,贴代码吧。
软件配置管理(CN) Google讨论组.如果想和大家交流,请发送email到
ConfigMgmt-CN@googlegroups.com
更多的信息,请浏览讨论组主页
http://groups.google.com/group/ConfigMgmt-CN?hl=zh-CN

TOP

回复 4# scmroad 的帖子

呃....
我也不会写啊,如果会的话早发上来了.
建议楼主看下ant中的<if><elseif><condition>这几个标签.

TOP

从我个人角度,我认为 ant 的 build.xml 写的越简单越好
软件配置管理(CN) Google讨论组.如果想和大家交流,请发送email到
ConfigMgmt-CN@googlegroups.com
更多的信息,请浏览讨论组主页
http://groups.google.com/group/ConfigMgmt-CN?hl=zh-CN

TOP

引用:
原帖由 xiaoxiang7788 于 2010-7-21 18:00 发表
前段时间研究ant 的时候好像看到了这样的解决办法, 但当时没记.
通过depend来控制也不失为一个方法, 但是这样的话在执行的时候还需要手工来控制.感觉不happy ...
的确如7788说的一样呀~
现在只是简单列举了简单的情况,而实际的情况有可能很复杂,程序编译的相互依赖及内在联系也会影响着不同的程序编译,所以,按scmroad 的办法,除非把各程序编译归类得很合理且很清楚,不然,在实际执行中还是要手工来控制调节的。

我觉得在ant语句本身可能不好实现(或实现起来也相对有点复杂),在想是否有赋予另外的控制开关(如另外一个简单控制编译清单的文件之类)的办法?

不知道这个方向有没有问题....

TOP

回复 7# virtuallife 的帖子

最后呢?想到解决方法没?
软件配置管理(CN) Google讨论组.如果想和大家交流,请发送email到
ConfigMgmt-CN@googlegroups.com
更多的信息,请浏览讨论组主页
http://groups.google.com/group/ConfigMgmt-CN?hl=zh-CN

TOP

我现在也是按2楼兄弟的方法做的,不过也觉得可以再优化下

TOP

回复 9# yuangjay 的帖子

热烈欢迎大家提出改进方法
我也想学习学习
软件配置管理(CN) Google讨论组.如果想和大家交流,请发送email到
ConfigMgmt-CN@googlegroups.com
更多的信息,请浏览讨论组主页
http://groups.google.com/group/ConfigMgmt-CN?hl=zh-CN

TOP

发新话题
最近访问的版块