Ant构建:从子文件夹导入build.xml,不覆盖其属性

时间:2013-09-17 23:23:36

标签: java ant

我有一个我添加到项目源的开源项目。 oss-project目前使用ant及其build.xml构建独立。

我想将此项目构建为项目的一部分。我的目录结构如下所示:

my-project\
  build.xml
  oss-project\
     build.xml
     {all the code}

我尝试将oss-project \ build.xml导入my-project \ build.xml。

<import file="${source_base}/oss-project/build.xml"/>

我的build.xml定义了basedir,source.base等变量,导入的xml也包含这些变量。但是,当我尝试通过在我的源根运行“ant”来构建时,在构建oss项目时,它正在使用父build.xml中定义的变量。

我可能会创建唯一的名称,在我的oss-project \ build.xml中为该项目名称添加前缀。但是,它开始看起来很难看。然后很难在将来保持同步。

是否有一种方法可以通过父build.xml中的一次覆盖子build.xml中定义的变量?

1 个答案:

答案 0 :(得分:3)

(在本例中)您不应导入build.xml。相反,它应该将子构建委托给适当的构建文件。您可以使用ant task

您的顶级版本应具有以下条目..

   <ant dir="${source_base}/oss-project/"/>