可以在ant XML构建文件中包含XML文件吗?

时间:2012-04-18 15:05:42

标签: ant

当我使用Makefile时,我可以包含common.mk文件,我在其中定义了一些常见的定义,例如classpath等。

我想对我的build.xml文件做同样的事情。我想在树中的每个文件夹中创建一个build.xml,这样我就可以构建树的任何部分,而不必每次都编辑一个top build.xml来告诉它要包含什么。

这就是我用makefile做的,并且非常好,因为我可以从树中的任何文件夹键入'make',并使用递归make,它将在我所在的地方构建树部分。

build.xml的问题在于,我发现我在每个build.xml中复制相同的定义(例如classpath,编译器标志和what-have-you)。

如果我可以包含一个xml文件,那么我可以将所有常见的东西放在common.xml文件中,在树的根目录中,并将其包含在每个build.xml中。 (这是我对Makefile所做的,我把所有东西都放在了common.mk中)。

我不喜欢使用env。用于定义事物的变量,并且更喜欢使用我用于整个树的文件,公共文件。

我是使用ant的新手,所以我可能忽略了这个功能。如果某人有一个如何做到这一点的例子,这将是有用的。

欢呼声,

1 个答案:

答案 0 :(得分:5)

查看包含XML文件和外部Ant文件的文档: http://ant.apache.org/faq.html#xml-entity-include

要在当前Ant文件中包含完整的Ant构建文件,您需要执行以下操作:

<?xml version="1.0"?>
<project name="test" default="test" basedir=".">

  <target name="setup">
    ...
  </target>

  <import file="./common.xml"/>

  ...

</project>

你需要Ant 1.6或更新版本。