<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">
Fant我的一个玩具项目,现在支持子项目了,比如我们有下面这样的结构:
Fant会把你的项目注册到source repo里, fant会根据这个数据库,来找到项目所依赖的module的目录,以及build文件(默认为build.xml)
所以你可以为任何一个依赖项目创建fant build, 这样build你的项目之前,就会先build依赖项目了
project | --b --b1 --b2 --c --c1 --c2应该说这个结构算是比较复杂了,我们的依赖关系是这样的
b2 --> c1 --> c2 --> b1 |______|______^我们的project/build.xml 可以定义成:
<property name="fant.etc.dir" value="${ant.home}/etc/fant"/""""> <import file="${fant.etc.dir}/ant-inc/master.xml"/""""> <modules id="project.modules" builddep="true"> <module name="b/b1" buildfile='mybuild.xml' /> <module name="b/b2"/""""> <module name="c/c1"/""""> <module name="c/c2"/""""> </modules>
如果我们在project目录下执行
> ant install
所有的子项目会同时build, 而且会按照依赖关系来自动排列build的顺序
那么如果c2也依赖于b2呢? 也即说我们有了一个循环依赖
b2 --> c1 --> c2 --> b1 ^ |______|______^ |____________|这个情况下build就会fail, 我们会得到类似下面的错误,
You have a cyclic dependency :b2 <-- c2 <-- c1 <-- b2如果你不想让fant去找依赖关系,只是build子项目,则可以通过modules 的builddep属性置为false即可
Fant会把你的项目注册到source repo里, fant会根据这个数据库,来找到项目所依赖的module的目录,以及build文件(默认为build.xml)
所以你可以为任何一个依赖项目创建fant build, 这样build你的项目之前,就会先build依赖项目了