我有两个ANT构建文件,位于不同的目录中。我希望将<include>
元素的内容<path>
放在另一个元素中。
这似乎应该足够简单,但我无法找到有关如何正确执行此操作的文档,因为ANT坚持总是评估相对于当前{<path>
元素的basedir
元素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>