从另一个目录中的构建文件导入类似ant路径的结构

时间:2012-04-16 14:08:48

标签: ant

我有两个ANT构建文件,位于不同的目录中。我希望将<include>元素的内容<path>放在另一个元素中。

这似乎应该足够简单,但我无法找到有关如何正确执行此操作的文档,因为ANT坚持总是评估相对于当前{<path>元素的basedir元素1}}(由于从另一个目录中的文件访问它,这是错误的。)

1 个答案:

答案 0 :(得分:0)

  

这似乎应该足够简单,但我无法找到有关如何正确执行此操作的文档,因为ANT坚持总是评估相对于当前基础的元素(这是错误的,到期的)从另一个目录中的文件访问它。)

ANT没有错。 build.xml 文件通常出现在项目(或项目子组件)文件系统的根目录中,并表示该构建的逻辑。

如果你想分享两个项目之间的路径,那么这是一个坏主意,两个项目很少会分享完全相同的构建路径......

或者,如果您尝试在两个项目子组件之间共享路径,为什么不overide the default value of the basdir属性如下?

<project name="my-project" default="build" basedir="..">
..

最后,我建议调查使用像Apache ivy这样的依赖管理器。让它为您管理构建的类路径。

更新

另一种选择是构建项目的文件,以便路径依赖性位于相同的相对文件系统路径中:

$ tree
.
|-- lib
|   |-- dependency1.jar
|   `-- dependency2.jar
|-- sub-component1
|   `-- build.xml
`-- sub-component2
    `-- build.xml

每个子组件 build.xml 然后声明它自己的路径如下:

<path id="build.path">
    <fileset dir="../lib" includes="*.jar"/>
</path>