如何設置$ {ant.project.name}值?我想將其設置爲: $ {ant.project.name} = $ {basedir}
我不想從build.xml中設置項目名稱。我的想法是 - 它應該自動獲取文件夾的名稱。
這可能嗎?
如何設置$ {ant.project.name}值?我想將其設置爲: $ {ant.project.name} = $ {basedir}
我不想從build.xml中設置項目名稱。我的想法是 - 它應該自動獲取文件夾的名稱。
這可能嗎?
ant.project.name
屬性由Ant在運行時設置,無法更改。有這樣的內置參數屈指可數,documented on the Ant website.如果你有需要的屬性,你可以改變,你可能會感興趣的ant contrib's var.
的ANT屬性ant.project.name設計返回字符串出現在您的構建文件的頂部。它有特殊的意義,不應該真正改變。
下面的例子演示瞭如何使用替代性(這應該在Windows工作以及):
<project name="demo" default="run">
<basename property="my.project.name" file="${basedir}"/>
<target name="run">
<echo message="ant.project.name=${ant.project.name}"/>
<echo message="my.project.name=${my.project.name}"/>
</target>
</project>
有以下輸出
run:
[echo] ant.project.name=demo
[echo] my.project.name=myprojectdirname
感謝您的回覆!我只是試圖動態/自動地將項目文件夾名稱分配給項目名稱屬性。對於例如如果我創建一個名爲'test'的項目文件夾,它應該被動態地分配給build.xml中的項目名稱屬性。如果我更改了項目文件夾的名稱,它應該反映在build.xml中,而不需要我介入。有一種方法可以設置-Dant.project.name = test。但是,我也試圖自動獲取當前文件夾的名稱。在Windows中,它非常棘手。 (。)中的%*做@echo%〜n *給我們當前的文件夾名稱。你能告訴我如何?日Thnx! – Faisal
@Faisal答案已更新。我不建議覆蓋標準屬性。而是使用自定義的。 –
你爲什麼在這樣設定的意圖這個特定的財產,當你可以設置你的心想要的任何其他財產?它也沒有任何意義。該項目的名稱完全獨立於您檢查出的目錄的名稱。
但是,如果你堅持,你可以通過在<project>
實體不設置它設置${ant.project.name}
:
<project basedir="." default="package"> <!-- Notice no name! -->
<basename property="ant.project.name"
file="${basedir}"/>
<target name="package">
<echo>The name of this project is ${ant.project.name}</echo>
</target>
</project>
當螞蟻-Dant.project.name =試驗是可能的,恕我直言,這也應該是可能的。順便說一下,我試圖通過-D分配當前文件夾名稱。在DOS中,對於(。)中的%*,執行@echo%〜n *打印當前文件夾名稱。我試圖將這個分配給屬性-Dant.project.name。 – Faisal