我有两个 ANT 构建文件,位于不同的目录中。我想将<include>
一个<path>
元素的内容从另一个中提取出来。
这似乎应该足够简单,但是我无法找到有关如何正确执行此操作的文档,因为 ANT 坚持始终评估<path>
相对于当前的元素basedir
(这是错误的,因为从另一个目录中的文件)。
我有两个 ANT 构建文件,位于不同的目录中。我想将<include>
一个<path>
元素的内容从另一个中提取出来。
这似乎应该足够简单,但是我无法找到有关如何正确执行此操作的文档,因为 ANT 坚持始终评估<path>
相对于当前的元素basedir
(这是错误的,因为从另一个目录中的文件)。
这似乎应该足够简单,但是我无法找到有关如何正确执行此操作的文档,因为 ANT 坚持始终评估相对于当前 basedir 的元素(这是错误的,因为访问它从另一个目录中的文件)。
ANT 这样做并没有错。build.xml文件通常存在于项目(或项目子组件)文件系统的根目录中,并表示该构建的逻辑。
如果您希望在两个项目之间共享路径,那么这是一个坏主意,两个项目很少会共享完全相同的构建路径.....
或者,如果您尝试在两个项目子组件之间共享路径,为什么不覆盖 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>