比方說,我有一個文件系統,看起來有點像這樣:螞蟻:文件集「目錄」與運行時屬性擴展全路徑
- 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