这句话的作用就是将 当前目录下的build2.xml添加到当前xml文件中。或许你会碰到这样的问题:import 所带来的关于重写的问题。具体如下所示:
build.xml 和 build2.xml 含有相同的 target ,那使用的target 是哪个?
如下例子所述
build.xml
<?xml version="1.0"?>
<project name="pase1" default="deploy">
<import file="./build2.xml"/>
<target name="deploy" depends="deploy_">
<echo message="liang"/>
</target>
<target name="link">
<echo message="link"/>
</target>
<target name="deploy_">
<echo message="link"/>
</target>
</project>
当前文件夹下的build2.xml
<?xml version="1.0"?>
<project name="pase2" default="deploy_">
<target name="deploy_" depends="link">
<echo message="xiansheng"/>
</target>
<target name="link">
<echo message="link2"/>
</target>
</project>
执行ant命令后的结果:
deploy_:
[echo] link
deploy:
[echo] liang
从结果可以看出:target="deploy" depends 的是 build.xml的 deploy_ 。当然若是当前xml中没有deploy_,就会从import中寻找。
下面讨论在build.xml中 依赖 build2.xml的link,这个 target 在被build.xml 中被调用时 是哪个link?因为在build2.xml和build.xml 都定义了这个target(link)。
首先将build.xml修改为:
<?xml version="1.0"?>
<project name="pase1" default="deploy">
<import file="./build2.xml"/>
<target name="deploy" depends="deploy_">
<echo message="liang"/>
</target>
<target name="link">
<echo message="link"/>
</target>
</project>
执行ant命令后的结果:
link:
[echo] link
deploy_:
[echo] xiansheng
deploy:
[echo] liang
可以看到在ant过程中,实际调用的是build.xml中的 link(target),若是build.xml没有定义,则会从build2.xml中寻找。
综上所述:可以在调用 对依赖的target 进行重写(很类似),最终调用哪个target都是以 调用的那个xml文件为基。关于相对路径的变换也类似。