比方说,我有一个文件系统,看起来有点像这样:蚂蚁:文件集“目录”与运行时属性扩展全路径
- C:\东西\ build.xml文件
- Ç :\东西\ MyFolder文件\ library1.jar
- C:\东西\ MyFolder文件\ library2.jar
里面的build.xml,我想定义看起来像这样的路径:
<path id="some.id">
<fileset dir="myfolder">
<include name="**/*.jar"/>
</fileset>
</path>
通常,工作正常。但是,我打电话给自己的自定义Ant任务,该任务将继承任何引用(包括路径“some.id”),并且该自定义Ant任务将调用驻留在不同basedir中的build.xml。因此,文件集中的“dir”属性不再有效。
有没有办法定义一个“目录”,使它保持有效,无论第二个build.xml居住在哪里?
我基本上想要做这样的事情:
<fileset dir="${expand.current.directory}/myfolder">
所以,当我打电话第二build.xml文件将体会到了“目录”属性的位置:
<fileset dir="c:\stuff\myfolder">
编辑:此外,我想要一个解决方案,允许我将“stuff”项目从一台机器复制到另一台机器,而无需更改构建。例如,如果“stuff”项目位于C:驱动器上,并将项目复制到另一台计算机上的D:驱动器上,我希望构建继续工作,而不必进入构建并更改该信件C到字母D.
对不起,我可能应该澄清我的问题,我想确保解决方案实际上是独立于机器。如果我要将“stuff”项目复制到具有D:驱动器的计算机上,那么在不更新ant/properties文件的情况下,上述解决方案将无法工作。道歉忘记添加,在我原来的职位。 – digiarnie 2010-09-17 10:55:15
这是将其解压缩到属性文件的一个很好的理由,您可以在其中更改环境相关值而无需重写您的build.xml文件。 – 2010-09-20 07:35:22
其他选项可以是martin clayton在另一个答案中所说的,访问java运行时属性(如$ {user.dir})。 – 2010-09-20 07:37:01