我有一个开源项目,我把它添加到我的项目源代码中。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"/>
我的构建.xml定义了basedir,source.base等变量,导入的xml也包含这些变量。但是,当我尝试通过在源根目录上运行"ant"来构建时,在构建 oss-project 时,它使用的是父构建.xml中定义的变量。
我可能会创建唯一的名称,在我的 oss-project\build.xml 中的所有变量前面加上该项目名称。但是,它开始看起来很丑陋。然后将来也很难保持同步。
有没有办法让子构建.xml中定义的变量不会被父构建中的一次.xml覆盖?
(在本例中)您不应导入build.xml。相反,它应将子生成委托给相应的生成文件。你可以使用ant任务
您的顶级构建应该具有如下所示的条目。
<ant dir="${source_base}/oss-project/"/>